Autor | Zpráva | ||
---|---|---|---|
first Profil * |
#1 · Zasláno: 18. 12. 2011, 22:57:20
Moje situace:
V JS mám přes JQuery AJAX funkci: $(".input").change( function(){ var value = $(".input").val(); $.get("script.php", {value: value}, function (data){ $(".message").text(data).fadeIn(500); }, 'html'); }); Potom mám volaný script: (např.) $value = $_GET['value']; if($value == 1) { $callback = "text"; $callback2 = 2; echo $callback; echo $callback2; } Lze nějak udělat aby AJAX vracel v callbacku obě proměnné? Lze to tam nějak odlišit, aby to nebyla jen promenná data? Doufám že je z toho patrné na co se ptám.. Díky za odpovědi. |
||
Nox Profil |
#2 · Zasláno: 18. 12. 2011, 23:01:56
nejlépe
echo json_encode(array("callback" => $callback, "callback2" => $callback2)); |
||
first Profil * |
#3 · Zasláno: 18. 12. 2011, 23:11:41
Jasně zpátky budu posílat pole.. že mě to nenapadlo. Díky moc.
Ještě doplňující otázka: k čemu je tam ta funkce json_encode? |
||
Nox Profil |
#4 · Zasláno: 18. 12. 2011, 23:28:34 · Upravil/a: Nox
No to pole se musí každopádně nějak "vyechovat" ... jelikož jsou různé možnosti, nejlepší bude JSON. A k převodu proměnné na formát JSOn slouží právě json_encode. Proč toto?
JSON je reprezentace objektů, kterou používá sám JavaScript, proto použití tohoto zní velmi logicky. Navíc jde o velmi přehledný, jednoduchý a úsporný formát (narozdíl od XML třeba). Spolu s YAML je dnes navíc jeden z nejpoužívanějších. Víc na http://json.org/ |
||
first Profil * |
#5 · Zasláno: 18. 12. 2011, 23:31:01
No a ještě neco mi není jasné .. :) jak budu v JS pak načítat ty data ?
Napadlo me toto: (ale to jaksi nefunguje) $(".input").change( function(){ var value = $(".input").val(); $.get("script.php", {value: value}, function (data){ $(".message").text(callback).fadeIn(500); var JScallback = callback2; }, 'html'); }); |
||
Nox Profil |
#6 · Zasláno: 18. 12. 2011, 23:36:13 · Upravil/a: Nox
1) jQuery na to má přímo spešl AJAX metodu (právě že je to tak kompatibilní a populární) a to .getJSON (což je stejně jako ostatní metody jen zkratka na .ajax s volbou typu obsahu JSON)
2) jQuery má na to navíc parser: http://api.jquery.com/jQuery.parseJSON/, takže pokud bys nechal .get, můžeš dát data = $.parseJSON(data); 3) Je možné použít JSON.parse(data), ale stará IE to nepodporují ... tipuju ale, že ho jQuery používá jako primární volbu, pokud je to dostupné http://stackoverflow.com/questions/45015/safely-turning-a-json-string-into-an-object |
||
first Profil * |
#7 · Zasláno: 18. 12. 2011, 23:53:28
Díky za tvůj čas. Asi nakonec použiju tu funkci .getJSON.
|
||
Časová prodleva: 12 let
|
0