2011-12-09 11 views
5

mio script restituisce valore indefinito dal mio json_encode phpjson_encode ritorno indefinito

index.php

<?php 
    $returnThis['user'] = "Robin098"; 
    $returnThis['id'] = "08465"; 

    echo json_encode($returnThis); 
?> 

sample.html

<head> 
    <script> 
     function clickHere(){ 
      $.get("index.php", function(data) { 
      alert(data.user); 
      }); 
     } 

    </script> 
</head> 
     <body> 
     <input type="button" onclick = "clickHere();" value="ClickHere!"/> 
     </body> 

Come posso risolvere questo problema?

+0

Da dove viene la variabile '$ aReturn' nel tuo script PHP? Si passa da '$ returnThis' a' $ aReturn' senza spiegazione. – Jasper

risposta

3

Utilizzare il metodo jQuery.getJSON anziché .get, se si desidera analizzare il JSON. Inoltre, assicurati che la libreria jQuery sia caricata correttamente.

function clickHere(){ 
     $.getJSON("index.php", function(data) { 
      alert(data.user); 
     }); 
    } 

Attualmente, si utilizza $.get(url, function(data){...}). In questo contesto, data è una stringa contenente la risposta dal server:

{"user":"Robin098","id":"80465"} 

Uso alert(data) all'interno della funzione mostrerà questa stringa.

+0

Ehi, grazie mille :) –

1

Sembra che tu stia configurando $returnThis, ma che quindi restituisca $aReturn. Non vuoi:

$returnThis['user'] = "Robin098"; 
$returnThis['id'] = "08465"; 

echo json_encode($returnThis); 
+0

Siamo spiacenti di scrivere in modo errato. –

+0

@RobinCarloCatacutan: in questo caso, sembra che la risposta di Rob W sia ciò che desideri. o .getJSON o $ .ajax con dataType impostato su json –

+0

No, ho semplicemente digitato il mio codice qui, non lo stesso con il mio codice reale. Mi hai aiutato. tnx. –