2017-03-31 18 views
1

Ich habe eine einzige PHP-Seite, die eine Tabelle mit Paginierung mit jQuery/Ajax lädt. Ich kann die Zeilen nicht auf eine andere Seite umleiten, wenn auf eine Seite in der Seitennumerierung geklickt wird (andere als die erste Seite)PHP/Ajax/jquery Aktion funktioniert nicht nach dem Seitenumbruch klicken

Hier ist vereinfachter Code von meinem generierten HTML für die Tabelle. Ich weiß, dass der HTML-Code bei jeder Änderung der Paginierungsseite korrekt generiert wird.

<tr class="table-row" data-myredirect="http://example.com/page"> 
<td>blah blah</td> 
</tr> 

Bei Erfolg der Tabellendaten zu laden (nur einmal ausgeführt, nachdem Benutzer eine Abfrage ausgeführt wird), führe ich die folgenden (vereinfacht):

success:function(result){ 
     //display table data (not shown) 
$(".table-row").click(function() { 
     //redirect 
     window.document.location = $(this).data("myredirect"); 
    }); 
} 

Wenn der Benutzer eine andere Seite von der Paginierung Links wählt ausführen, wird die folgende:

//executes code below when user click on pagination links 
    $("#results").on("click", ".pagination a", function (e){ 
     e.preventDefault(); 
     $(".loading-div").show(); //show loading element 
     var page = $(this).attr("data-page"); //get page number from link 
     $("#results").load("test.php",{"page":page, "myparam":searchItemOne}, function(){ //get content from PHP page 
      $(".loading-div").hide(); //once done, hide loading element 
      //fixes scrolling up bug 
      $('html, body').animate({ 
     scrollTop: $("#results").offset().top 
    }, 0); 
     }); 

    }); 

Was könnte die Aktion verursachen nicht mehr arbeiten, wenn ich auf die nächste Paginierung Seite navigieren? Ich kann auf Anfrage mehr Code hinzufügen.

+1

Können Sie ein etwas vollständigeres (aber immer noch minimales) Beispiel für das Problem angeben? Ich * vermute *, dass dies ein Duplikat von: https://stackoverflow.com/questions/203198/event-binding-on-dynamically-created-elements ist Aber es ist schwer zu wissen, mit den unvollständigen Segmenten geschrieben. – David

+0

Interessiert Sie der PHP- oder nur der JavaScript-Typcode? – heyitsmyusername

+0

Wenn das Problem clientseitig ist, dann scheint der clientseitige Code zu prüfen. – David

Antwort

1

ich denke es liegt daran, dass Ihre .table-row nach dem JavaScript-Code gerendert wird (nachdem Sie den HTML-Code über AJAX das zweite Mal geladen haben), so dass der Umleitungscode das neue table-row nicht kennt.
versuchen, die Umleitung Code

$(".table-row").click(function() { 
     //redirect 
     window.document.location = $(this).data("myredirect"); 
    }); 

in Ihrer php Datei eingeben, damit es
mit der neuen HTML neu lädt.

Verwandte Themen