Załaduję dane ustawione przez jQuery ajax jako

$(function(){
 $('#next').submit(function(e){
 e.preventDefault();
 var form = $(this);
 var page = form.attr("action")
  $.ajax({
   type: 'POST',
   url: page, 
   success: function(html){
   $("#results").append(html);
   }
  });
 });
});

Formularz jest jednym przyciskiem z Action = "Load.php? Strona = 2".

Po naciśnięciu przycisku przesyłania formularza obciąży dane z load.php?page=2. Jak mogę pamiętać tę akcję, aby załadować dane z load.php?page=3 na następne kliknięcie? i czytanie kolejnych stron?

W rzeczywistości chcę wprowadzić nową zmienną dla numeru strony, zostanie zwiększona na każdym kliknięciu.

0
Googlebot 23 listopad 2011, 02:09

3 odpowiedzi

Najlepsza odpowiedź

Możesz po prostu ustawić stronę JavaScript Va, aby reprezentować stronę, a następnie zwiększyć go na prześlij ...

var page = 1;
$(function(){
 $('#next').submit(function(e){
 e.preventDefault();

 var form = $(this);
  $.ajax({
   type: 'POST',
   url: page, 
   success: function(html){
       $("#results").append(html);
       page += 1;
   }
  });
 });
});

Nie wiem, co miałeś w nim twoja oryginalna strona Var, ale oczywiście dostosujesz tę odpowiedź, aby dopasować swoje potrzeby. Twój URL Param nie tylko byłby jednym z nich, dzięki czemu aktualizuje tę część, jak potrzebujesz.

1
Kai Qing 22 listopad 2011, 22:27

Użyłbym regexa do pokrojania numeru z końca atrybutu {x0}} i zastąp action w obraźniku success za pomocą numeru zwiększonego numeru strony.

Zmieniłem też linię b.attr("action") do form.attr("action"), jak myślę, że jest to literówka w twojej wersji. Jeśli nie zostań z oryginalną wersją tej linii :)

$(function(){
    $("#next").submit(function(e){
        e.preventDefault();

        var form = $(this),
            page = form.attr("action"),
            page_nr = (/\d+$/.exec(page) || ["2"])[0];

        $.ajax({
            type: 'POST',
            url: page, 
            success: function(html){
                form.attr("action", page.substring(0, (page.length - page_nr.length)) + (+page_nr + 1));
                $("#results").append(html);
            }
        });
    });
});

Przykład: http://jsfiddle.net/wfru7/

3
Andreas 22 listopad 2011, 22:30

Najlepszym sposobem na radzenie sobie z nimi "Potrzebujesz zachowania historii" jest, wierz w to, a nie, element DOM. Jesteśmy tak związani do programowania, zmiennych i literałów, które po prostu zapominamy o prostej stronie rzeczy. I najwyraźniej proste jest to, czego nikt nie ma na myśli.

Tak więc, "proste" rozwiązanie jest w skrypcie załadowanego strony, zapisz parametr QueryString (strona = 2 ... The 2) na

<span id='curPageNumber' style='display:none; '> 

Na załadowanej stronie. W następnym połączeniu wszystko musisz, na przykład, onsubmit = 'functionUsubmit (); ' i

function functionSubmit() {
    var action="load.php?page="+$('#curPageNumber').text()*1+1;
    $('#formID').attr('action',action);
    $('#formID').submit();
}
1
zequinha-bsb 23 listopad 2011, 00:00