سؤال

ما هو الخطأ في هذا الكود يعمل أول مرة ثم عندما أقوم ببناء رأس مرة أخرى خطأ يحدث يقولون من هو غير معروف

ومسج

function sort(tableHeader,sortDir)
{
 $.ajax({
 url: "sort.php",
 type:"get",
 data: "tableHeader="+tableHeader +"&sortdirection="+sortDir,
 success:function(data){
 $("#t1").html(data);}});}

وفب

  $table_Header=$_GET['tableHeader'];
  $sort_Dir=$_GET['sortDir'];

 if ($table_Header == 'From')
 {
   $sort_By = 'player_name';
 }
 else if ($table_Header == 'To')
 {
  $sort_By = 'player_name';
 }   
 else if ($table_Header== 'Gr')
 {
   $sort_By = 'grp_abr';
 }

 if (isset($sort_Dir) && $sort_Dir == 'DESC')
 {
    $sort_Dir = 'DESC';
 }
else
  {
    $sort_Dir = 'ASC';
  }

   $str = stripslashes('From');
   echo $sortBy;
   $result = mysql_query("SELECT * FROM messages,Player
   where player_id = from_user
   ORDER BY player_name ".$sort_Dir);
   echo "<thead>
   <tr>
   <th style='color:royalblue;'>•</th>
   <th align='center'>Time</th>
   <th align='left' onClick='sort('From',$sort_Dir);'>De:</th>
   <th align='left'>To:</th>
   <th align='left'>Gr</th>
   </tr>
   </thead> ";

  while($row = mysql_fetch_array($result))
  {
  echo "<tbody>
  <tr class='highlight'>
  <td width='30' align='center' style='color:royalblue'>"."•"."</td>
  <td width='70' align='left'>".$row["Time_Date"]."</td>
  <td width='600' align='left'>".$row["player_name"]."</td>
  <td width='600' align='left'></td>
  <td width='100' align='left'></td>
  <tr class='highlight'>
  <td></td>
  <td colspan='4'>".$row["msg_desc"]."</td></tr>
 </tbody>";
  }
هل كانت مفيدة؟

المحلول

وهنا التالية ملاحظاتي، وبعد نظرة على الكود الخاص بك.

وsort.php:12 >>> العنصر $ _GET مجموعة للتوجيه نوع وأخطأت: كنت اسميها $_GET["sortDir"] بينما يؤلف وظيفة sort() جافا سكريبت على طلب اياكس مع هذا المتغير في سلسلة استعلام مواقع المعلومات يسمى 'sortdirection'

وsort.php:28 >>> لا تحتاج إلى ترتيب عكسي هنا، كما لديك وظيفة جافا سكريبت sortDirection() يفعل ذلك بالفعل. لذلك، وخطوط تعليق 28-35 وفي السطر 44 لا تستخدم $sort_Dir متغير بي، ولكن sortDir متغير جافا سكريبت بدلا من ذلك.

وuser.php:48 >>> المقارنة لتحديد ترتيب الحالي التي وجهت إلى سلسلة "Desc" الحرفي، بينما عموما استخدام "DESC" كقيمة لهذا المتغير، لذلك كان أول محاولة على ما يرام ولكن الثاني ببساطة لا يفعل شيئا، و"DESC" يختلف عن "Desc" في جافا سكريبت، ويرجع ذلك إلى المقارنة الثنائية بين السلاسل. حتى تغيير "Desc" إلى "DESC" إلى وظيفة sortDirection() الخاص بك.

وهذا يجب ان تحصل على عمل الاشياء الخاصة بك.

نصائح أخرى

أولا فما استقاموا لكم فاستقيموا محاولة تغيير onClick='sort('From',$sort_Dir);' التحول من علامات الاقتباس المفردة حول sort(...) إلى التنصيص، ويفر منهم بخط مائل كما كنت داخل سلسلة فب هناك، وبهذه الطريقة:

onClick=\"sort('From',$sort_Dir);\"

وثانيا، داخل نفس المتكررة، وأنت تمر $ sort_Dir، والتي سيتم ترجمتها بواسطة PHP إلى ASC أو DESC. منذ ذلك الحين في هذه السلسلة التي كنت تكتب بعض رمز مصدر HTML لإدراجها في مكان ما في المستند، للسماح كلمة ASC أو DESC تظهر دون اقتباسات من حوله سوف تخلط محلل جافا سكريبت.

لذلك يجب تغيير الاشياء عند _ النقر مثل هذا:

onClick=\"sort('From','$sort_Dir');\"

ولكن كما قلت في تعليقي، يجب أن تعطي المزيد من التفاصيل حول أول (وناجحة فقط، على ما يبدو) احتجاج من نوع () (عندما لا يحدث، وكيف الخ.).

وهذه محاولة ونرى.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top