Autor Zpráva
first
Profil *
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
nejlépe
echo json_encode(array("callback" => $callback, "callback2" => $callback2));
(akorát ty názvy proměnných jsou podivné)
first
Profil *
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
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 *
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'); 
 
      });
Poradíte ?
Nox
Profil
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 *
Díky za tvůj čas. Asi nakonec použiju tu funkci .getJSON.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0