2016-05-23 4 views
0

У меня есть intial группа вариантов, как эти:новой базы данных запросов, когда параметр изменения поле

<select name="sortBy" id="sortBy"> 
    <option value="waktupesan">Waktu Pesan</option> 
    <option value="nomornota">Nomor Nota</option> 
    <option value="U.nama">Kasir</option> 
</select> 

И я должен запустить запрос, как это:

SELECT P.NomorNota, P.WaktuPesan, P.WaktuBayar, P.Total, U.Nama, MP.Nama 
FROM foodie.pemesanan P, foodie.user U, foodie.mode_pembayaran MP 
WHERE P.EmailKasir = U.Email AND P.Mode = MP.Kode 
ORDER BY $sortBy DESC; 

в значении $ SortBy Я хочу получить от значения параметра. Как изменить этот запрос, когда я изменяю значение параметра, но не перезагружаю страницу?

+0

Что вы пробовали? – Blank

+0

Использовать атрибут onchange html для запуска выбора выбора, а затем использовать ajax для отправки HTTP-запроса без перегрузки страницы. – Borna

+0

, чтобы показать данные в базе данных и отсортировать по убыванию в значении $ sortBy – Wisnu

ответ

1

Вы можете попробовать jQuery - javascript library. Загрузить here.

Так если вы отображения данных, как это():

echo '<table id="data"> 
      <thead> 
       <tr> 
        <th>Nomor Nota</th> 
        <th>Waktu Pesan</th> 
        <th>Waktu Bayar</th> 
        <th>Total</th> 
        <th>U Nama</th> 
        <th>MP Nama</th> 
       </tr> 
      </thead> 
      <tbody>'; 

while($stmt->fetch()){ 
    echo '<tr> 
       <td>'.$nomornota.'</td> 
       <td>'.$waktupesan.'</td> 
       <td>'.$waktubayar.'</td> 
       <td>'.$total.'</td> 
       <td>'.$unama.'</td> 
       <td>'.$mpnama.'</td> 
      </tr>' 
} 

echo ' </tbody> 
     </table>'; 

Тогда ваше поле выбора:

<select name="sortBy" id="sortBy"> 
    <option selected disabled>Select Sort</option> 
    <option value=0>Nomor Nota</option> 
    <option value=1>Waktu Pesan</option> 
    <option value=2>Waktu Bayar</option> 
    <option value=3>Total</option> 
    <option value=4>U Nama</option> 
    <option value=5>MP Nama</option> 
</select> 

Теперь мы должны создать сценарий своего рода наш стол.

<script src="js/jquery-1.9.1.min.js"></script> <!-- ASSUMING YOU STORE THE DOWNLOADED JQUERY TO A js FOLDER --> 
<script> 

    $(document).on("change", "select", function(){ /* WHEN SELECT FIELD HAS BEEN CHANGED TO THE PREFERRED SORT */ 

     var no = $(this).val(); /* VALUE OF THE SELECTED SORT */ 
     sortTable(no); /* CALL sortTable() FUNCTION */ 

    }); 

    function sortTable(no){ /* sortTable() FUNCTION */ 

     var rows = $('#data tbody tr').get(); /* GET ROWS OF INSIDE TBODY */ 

     rows.sort(function(b, a) { /* USE JAVASCRIPT'S .sort() */ 

      var A = $(a).children('td').eq(no).text().toUpperCase(); 
      var B = $(b).children('td').eq(no).text().toUpperCase(); 

      if(A < B) { 
       return -1; 
      } 

      if(A > B) { 
       return 1; 
      } 

      return 0; 

     }); 

     $.each(rows, function(index, row) { 
      $('#data').children('tbody').append(row); /* APPEND THE NEW SORT OF DATA TO THE TABLE */ 
     }); 
    } 

</script> 

Вы можете проверить это на примере fiddle.