Jak uzyskać jquery, aby zatrzymać zastępowanie tekstu z żądania ajax.

var nameid = 1;
$(document).ready(function(){
$('button').click(function(){
$('#loadbox').load('mysqlquery.php?id='+nameid);

nameid++;

});
});// DONT DELETE

Pobiera informacje, które chcę, gdy wykonuję kolejne połączenie, zastępuje poprzednie słowo.

0
Cjueden 8 luty 2012, 06:09

3 odpowiedzi

Najlepsza odpowiedź

Nie używaj .load() .. użyj jQuery.get() dokumentacji dla części AJAX i .append() dokumentacji aby dodać je do wybranego elementu (przy zachowaniu istniejących informacji)

(możesz też wciąć swój kod, aby uniknąć komentarzy takich jak // DONT DELETE)

var nameid = 1;
$(document).ready(function(){
    $('button').click(function(){
        $.get('mysqlquery.php?id='+nameid, function(data){
            $('#loadbox').append(data);
        });
        nameid++;
    });
});
1
Gabriele Petrioli 8 luty 2012, 06:14

Możesz zajrzeć do innych metod jQuery ajax oprócz .load() -- .load() wypełni wybrany element (w tym przypadku element o identyfikatorze "loadbox") odpowiedzią zwróconą przez żądanie do podany adres URL i zawsze nadpisze istniejącą zawartość.

Wygląda na to, że chcesz dołączyć odpowiedź do elementu. W takim przypadku możesz zrobić:

$.ajax('mysqlquery.php?id=' + nameid, {
  dataType : 'html',
  success : function(html) {
    $('#loadbox').append(html);
  }
});
0
rmurphey 8 luty 2012, 06:20

Czy to znaczy, że chcesz załadować tylko raz?

var nameid = 1;
$(document).ready(function () {
    var loaded = false;
    $('button').click(function () {
        if (!loaded) {
            $('#loadbox').load('mysqlquery.php?id=' + nameid, function () {
                loaded = true;
            });
        }
    });
});

Aktualizacja: Jeśli chcesz dołączać dane przy każdym kliknięciu, zobacz odpowiedź @Gaby aka G. Petrioli.

0
xdazz 8 luty 2012, 06:21