Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: AJAX - sortowanie rekordów
Forum PHP.pl > Forum > XML, AJAX
PHP_Addicted
Mam skrypt, który wyświetla mi wyniki pobrane z bazy danych w tabelce:

  1. <div id="right">
  2. <?php
  3. $ile = $db->getAmount(); // zlicza ilość wyników
  4. printf($Client->renderTable($wynik,$ile)); // wyświetlenie tabeli
  5. ?>
  6. </div>


efekt jest następujący:



Do przycisków obok Nazwa i Dodano są przypisane następujące zdarzenia jQuery:

Kod
$(document).ready(function(){
$('#sortdate').click(function() {
  $.post(
      './functions/AJAXsortname.php',
      {
      sort:'c_date'
  },
  function(returned_data)
         {
         $('#right').html(returned_data);
         }
  );
});
});

$(document).ready(function(){
$('#sortname').click(function() {
  $.post(
      './functions/AJAXsortname.php',
      {
      sort:'c_name'
  },
  function(returned_data)
         {
         $('#right').html(returned_data);
         }
  );
});
});


a plik AJAXsortname.php wygląda tak:

  1. include '../classes/client.php';
  2. include '../classes/database.php';
  3. $Client = new Client();
  4. $db = new dbh();
  5. $wynik = $db->searchClient('',$_POST['sort']);
  6. $ile = $db->getAmount();
  7. printf($Client->renderTable($wynik,$ile));


Problem polega na tym, że przy pierwszym użyciu guzika wyniki w tabeli są sortowane. Natomiast po wyświetleniu posortowanych wyników nie można wykonać żadnego innego zdarzenia poprzez jQuery (ani sortowanie, ani nawet alert). Czy ktoś obeznany w temacie mógłby podpowiedzieć w czym problem?

Dzięki z góry za pomoc.
greg.paw.90
użyj np. on() zamiast click()
PHP_Addicted
Cytat(greg.paw.90 @ 17.09.2013, 12:26:04 ) *
użyj np. on() zamiast click()


Użyłem on(), ale w bez skutku. W sumie to powywalałem wszelakie zdarzenia ajaxowe, zostawiłem sam alert i wtedy zdarzenia poprawnie się wywołują. Więc wydaje mi się, że problem jest w jakiś sposób powiązany z:

Kod
$('#right').html(returned_data);
greg.paw.90
w ten sposób próbowałeś ?

[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function(){
  2.  
  3. var el = $('#right');
  4.  
  5. el.on('click', '#sortdate', function(){
  6. $.post('./functions/AJAXsortdate.php',{sort:'c_date'},function(returned_data){
  7. el.html(returned_data);
  8. });
  9. });
  10. el.on('click', '#sortname', function(){
  11. $.post('./functions/AJAXsortname.php',{sort:'c_name'},function(returned_data){
  12. el.html(returned_data);
  13. });
  14. });
  15.  
  16. });
[JAVASCRIPT] pobierz, plaintext
PHP_Addicted
Cytat(greg.paw.90 @ 18.09.2013, 08:51:57 ) *
w ten sposób próbowałeś ?

[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function(){
  2.  
  3. var el = $('#right');
  4.  
  5. el.on('click', '#sortdate', function(){
  6. $.post('./functions/AJAXsortdate.php',{sort:'c_date'},function(returned_data){
  7. el.html(returned_data);
  8. });
  9. });
  10. el.on('click', '#sortname', function(){
  11. $.post('./functions/AJAXsortname.php',{sort:'c_name'},function(returned_data){
  12. el.html(returned_data);
  13. });
  14. });
  15.  
  16. });
[JAVASCRIPT] pobierz, plaintext


Działa, dzięki wielkie wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.