$.post("test.php", { "func": "getNameAndTime" },
function(data){
console.log(data.name); // John
console.log(data.time); // 2pm
}, "json");
W pliku test.php z którego pobieramy dane wystarczy zamiast zwykłego
dać
echo "zwykly ciag znakow";
echo json_encode(array("name"=>"John","time"=>"2pm"));
Żródło: http://api.jquery.com/jQuery.post/
Niby wszystko OK, ale problem pojawia się gdy chcesz przesłać np. wynik pętli.
OdpowiedzUsuńPrzykład:
$zapytanie = mysql_query("select * from test_ajax ORDER BY wynik DESC LIMIT 5");
while ($rekord = mysql_fetch_array($zapytanie)){
$text = $rekord['id'].' - '.$rekord[imie];
}
echo json_encode(array("jakas_wartosc"=>$text));
json wyśle tylko wynik ostatniego przebiegu pętli.
Dodam również, że utworzenie z $text tablicy tj. $text[], nie rozwiązuje problemu.
OdpowiedzUsuńPrzykład:
$zapytanie = mysql_query("select * from test_ajax ORDER BY wynik DESC LIMIT 5");
$text = array();
while ($rekord = mysql_fetch_array($zapytanie)){
$text[] = $rekord['id'].' - '.$rekord[imie];
}
echo json_encode(array("jakas_wartosc"=>$text));
W taki przypadku występuje błąd w pliku z biblioteką jQuery.