Сортировщик таблиц не работает с Ajax, PHP - PullRequest
0 голосов
/ 10 мая 2018

Я использую AJAX для возврата записей базы данных из SQL в HTML.

Я бы хотел использовать TableSorter JS, чтобы затем упорядочить записи базы данных.

Первоначальная проблема:все строки таблицы в моей таблице по-отдельности обернуты в TBODY, что, как я полагаю, приводит к неработоспособности JS TableSorter.

Вот HTML

<table id="results" class="tablesorter">    

      <thead>
             <tr>  
                 <th>Event</th>  
                 <th>Venue</th>  
                 <th>Genre</th>  
                 <th>Date</th> 
                 <th>Price</th>  
            </tr>  
             </thead>

              <tbody>
            <tr>  
                      <td>egg presents</td>  
                      <td>egg</td>  
                      <td>techno</td>  
                      <td>2018-01-08</td> 
                      <td>0.00</td>  
                 </tr>  
                  </tbody>


              <tbody>
            <tr>  
                      <td>fabric presents</td>  
                      <td>fabric</td>  
                      <td>techno</td>  
                      <td>2018-01-08</td> 
                      <td>0.00</td>  
                 </tr>  
                  </tbody>


              <tbody>
            <tr>  
                      <td>fabric presents</td>  
                      <td>fabric</td>  
                      <td>techno</td>  
                      <td>2018-01-08</td> 
                      <td>20.00</td>  
                 </tr>  
                  </tbody>


              <tbody>
            <tr>  
                      <td>EYOE pres. Kite Base</td>  
                      <td>corsica studios</td>  
                      <td>techno</td>  
                      <td>2018-01-08</td> 
                      <td>11.00</td>  
                 </tr>  
                  </tbody>


              <tbody>
            <tr>  
                      <td>egg presents</td>  
                      <td>egg</td>  
                      <td>techno</td>  
                      <td>2018-01-08</td> 
                      <td>10.00</td>  
                 </tr>  
                  </tbody>

Вот мой запрос PHP / SQL

$query = "  
       SELECT * FROM event  
       WHERE  event_date = '".$_POST["to_date"]."'  AND  genre = '".$_POST["request"]."' AND  price <= '".$_POST["request1"]."'
  ";      
  $result = mysqli_query($connect, $query);  
    $output .= '  
     <table> 
      <thead>
             <tr>  
                 <th>Event</th>  
                 <th>Venue</th>  
                 <th>Genre</th>  
                 <th>Date</th> 
                 <th>Price</th>  
            </tr>  
             </thead>
            ';  
  if(mysqli_num_rows($result) > 0)  
  {  
       while($row = mysqli_fetch_array($result))  
       {  
            $output .= ' 
              <tbody>
            <tr>  
                      <td >'. $row["event_name"] .'</td>  
                      <td >'. $row["venue_name"] .'</td>  
                      <td >'. $row["genre"] .'</td>  
                      <td >'. $row["event_date"] .'</td> 
                      <td >'. $row["price"] .'</td>  
                 </tr>  
                  </tbody>
                    </table> 
            ';  

       }  
  } 

Что я делаю неправильно в запросе Ajax?

1 Ответ

0 голосов
/ 10 мая 2018

Как видно из комментариев, попробуйте вывести <tbody> и </tbody> из while цикла:

$query = "SELECT * FROM event  
          WHERE  event_date = '".$_POST["to_date"]."' 
          AND genre = '".$_POST["request"]."' 
          AND price <= '".$_POST["request1"]."'";      
$result = mysqli_query($connect, $query);  
$output .= '<table> 
              <thead>
                <tr>  
                  <th>Event</th>  
                  <th>Venue</th>  
                  <th>Genre</th>  
                  <th>Date</th> 
                  <th>Price</th>  
               </tr>  
             </thead>
             <tbody>';  
if(mysqli_num_rows($result) > 0){  
   while($row = mysqli_fetch_array($result)){  
        $output .= '<tr>  
                     <td >'. $row["event_name"] .'</td>  
                     <td >'. $row["venue_name"] .'</td>  
                     <td >'. $row["genre"] .'</td>  
                     <td >'. $row["event_date"] .'</td> 
                     <td >'. $row["price"] .'</td>  
                    </tr>';  
   }
   $output.='</tbody>';  
}
else{
    //You can add some code if there are no result and then close </TDOBY>
    $output.='</tbody>';
}
//I suggest to add <tfoot> also before close <table>
$output .= '<tfoot>
              <tr>  
                <th>Event</th>  
                <th>Venue</th>  
                <th>Genre</th>  
                <th>Date</th> 
                <th>Price</th>  
             </tr>  
           </tfoot>
           </table>';
...