2016-10-26 2 views
1

Ich möchte Daten in jQuery zeigen, während die Daten von PHP in Json_encode Funktion erhalten. Es gibt insgesamt drei Dateien. json.htmljQuery Seite zeigen die Daten von json_encode in PHP

<html> 
 
<head> 
 
</head> 
 
<body> 
 
<script type="text/javascript" src="jquery-3.0.0.min.js"></script> 
 
<script type="text/javascript" src="test.js"></script> 
 
</body> 
 
</html>
test.js

$(document).ready(function(){ 
 

 
\t $.getJSON("json.php",function(json){ 
 
\t \t 
 
\t \t alert(json.a); 
 
\t \t console.log(json.a); 
 
\t }); 
 

 
});

$(document).ready(function(){ 
 
function getA(){ 
 
\t $.getJSON("json.php",function(json){ 
 
\t \t echo json.$a; 
 
\t }) 
 
} 
 
}
json.php

<?php 
 
header('Content-type:application/json'); 
 
$a=3; 
 
echo json_encode($a); 
 
?>

, wenn ich den Code ausführen, zeigt es wie folgt: test.js: 4SyntaxError: Unerwartete Kennung 'json'

Dank, was Sie sagten, das ehemalige Problem wurde gelöst Aber etwas Unglaubliches passiert. Ich habe test.js wie folgt verändert:

$(document).ready(function(){ 
 

 
\t $.getJSON("json.php",function(json){ 
 
\t \t document.write(json.a1.length); 
 
\t \t document.write(json.a.length); 
 
\t });  \t 
 
});

json.php

<?php 
 
// header('Content-type:application/json'); 
 
$a = array('a1' =>aaaaa ,'b2'=>bb ,'c3'=>cc); 
 
echo json_encode($a); 
 
?>

Diesmal Browser sagt mir 'a' ist nicht ein Objekt, aber 'a1' ist ein Objekt. Warum wurden die Elemente nicht an js übergeben?

+0

Echo json. $ A // das ist php und nicht javaScript –

+0

Meinst du ich sollte das "echo" entfernen? – zyMacro

+0

ja, und verwenden Sie print, console.log oder Alarm, in JavaScript –

Antwort

0

Echo ist ein PHP-Befehl und kein JavaScript. Siehe Beispiel:

$(document).ready(function(){ 
 
    $.getJSON("https://viacep.com.br/ws/89208540/json/",function(json){ 
 
     console.log(json.localidade); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<html> 
 
<head> 
 
</head> 
 
<body> 
 
</body> 
 
</html>

+0

Ich habe es in der bearbeiteten Frage bearbeitet bearbeitet.Aber diesmal passiert nichts. Kannst du mir sagen, was passiert? – zyMacro

+0

Um auf das "a" -Element zuzugreifen, verwenden Sie wie ein Index eines Arrays, OK? So: $ a ["a"] = 3; echo json_encode ($ a); –

+0

Und debuggen Sie Ihren Code, um zu sehen, was falsch ist. Zuerst greifen Sie auf den php in Ihrem Browser zu und sehen, was die Antwort ist. Nächster Schritt: Zeichne deinen JSON in JavaScript: alert (JSON.stringify (json)); –

0

ersetzen echo json.$a; in test.js zu alert(json.a);

+0

Ich habe es bearbeitet. Aber dieses Mal passiert nichts. Es hat nichts alarmiert. – zyMacro

+0

Um auf das Element "a" zuzugreifen, verwenden Sie wie ein Index eines Arrays, OK? So: $ a ["a"] = 3; echo json_encode ($ a); –

1

, wenn Sie die Ausgabe in Ihrem test.js erhalten möchten, dann sollten Sie Ihren Code in json ändern. PHP wie folgt

<?php 
    $data array('a' => 3); 
    echo json_encode($data); 

json_encode($data) ausgeben wird ein {"a":3}, die ein JavaScript ist, dass das Objekt mit dem Sie Ihren Code in test.js

 $.ajax({ 
     method: "POST", 
     url: "json.php", 
     success: function(data) { 
      alert(json.a);// will alert 3 
      console.log(json.a);// will print 3 
     } 
    }); 
+0

Ich habe getan, was Sie als das bearbeitete Problem sagten. Aber nichts passiert. – zyMacro

+0

In diesem Fall ist das Problem in der Funktion, die Sie verwendet haben, um Sie 'json.php' zu rufen, überprüfen Sie den obigen Code Ich aktualisierte es in Ajax Anruf. – noodlesegg

+0

Sind Sie sicher, dass Ihre jquery-Bibliothek ordnungsgemäß funktioniert? versuchen, es zu ändern '' – noodlesegg

0

In Ihrer json.php Datei Verwendung Array verwenden Sie den Wert zB zuweisen,

<?php 
$a=array('a'=>3); 
echo json_encode($a); 
?> 
+0

Warum haben Sie "Echo" in PHP-Datei hinzugefügt? Ich habe viele Leute gesehen, die auf diese Weise codierten. Meinst du das Echo auf der PHP-Seite? Meiner Meinung nach ist $ a auf diese Weise immer noch kein JSON. Also habe ich json_encode ($ a) zu $ ​​b zugewiesen. Aber es hat nicht funktioniert. – zyMacro