za pomocą jquery ajax załadować informacje z bazy danych
Próbowałem użyć następujących
// Start method 1
var grbData = $.ajax({
type : "GET",
url : "http://grb.sonoma.edu:81/getgrbs.php",
data : "start=0&perPage=3"}).responseText;
$("#ajaxDiv").html(grbData);
// End method 1
// Start method 2
$.get("getgrbs.php", { start : 0, perPage : 3},
function(data) {
$("#tst").html(data);
}, "html");
// End method 2
na tej stronie:http://grb.sonoma.edu:81/paging.php ładować dane z bazy danych. Metoda 1 wydaje się działać tylko w IE8, ale dopiero po odświeżeniu strony. Po pierwszym załadowaniu strony otrzymuję komunikat „Dane niezbędne do ukończenia tej operacji nie są jeszcze dostępne”. błąd.
Powodem, dla którego preferuję metodę 1 jest to, że daje mi dostęp do poszczególnych wierszy w tabeli. Na przykład. Każdy wiersz ma klasę „burst”. ja używam
$(".burst").click(function() {
$(".burst").css("background-color", "");
$(this).css("background-color", "yellow");
});
aby zmienić kolor wybranego wiersza po kliknięciu. Wydaje się, że działa to tylko z metodą 1, a nie metodą 2.
Cały powyższy kod jest hermetyzowany w $ (document) .ready (). próbowałem
$("#ajaxDiv").load("getgrbs.php", { start : 0, perPage : 3});
ale otrzymuję wyniki podobne do metody 2.
Jak mogę sprawić, by funkcja kliknięcia działała z Metodą 2 lub, aby Metoda 1 działała na wszystkich przeglądarkach bez odświeżania? Dziękuję za wszelką pomoc, jaką mogę za to uzyskać.
Muszę to zrobić w ajax (wypróbowano ajax bez jquery i tam nie ma szczęścia), ponieważ na stronie pojawią się inne rzeczy, które nie zmienią się jako strony użytkownika poprzez dane.
Dodatek do rozwiązania (lepsze rozwiązanie w odpowiedzi)Po pomyślnym użyciu „sukcesu” zauważyłem, że nie ma możliwości kliknięcia wiersza i zmiany koloru bg. Zrobiłem więc następujące czynności, które wydają się działać. Nie jestem pewien, czy jest to najlepszy sposób.
var grbData = $.ajax({
type : "GET",
url : "http://grb.sonoma.edu:81/getgrbs.php",
data : "start=0&perPage=3",
dataType : 'html',
success: function (data) {
$("#ajaxDiv").replaceWith(data);
startInteraction();
}
});
function startInteraction() {
$(".burst").click(function() {
$(".burst").css("background-color", "");
$(this).css("background-color", "yellow");
});
}