将JSON数组从PHP传递给Javascript

时间:2013-12-10 12:57:09

标签: javascript php jquery json

我已经通过了很多解决方案1但是没有让java脚本中的json收到错误。在我的myfile.php文件中它包含

<?php
 ................
print json_encode($data, JSON_NUMERIC_CHECK);
mysql_close($con);
?>
<html>
    <head>
         <script type="text/javascript" src="jquery.min.js"></script>
         <script type="text/javascript" src="example2.js"></script>
        <script>
           var json= loadJsonFromPHP(<?php echo json_encode($data) ?>);
           //var json= <?php echo json_encode($data) ?>;
        </script>
    </head>
    <body></body>
</html>

在我的example2.js文件中

var loadJsonFromPHP = function(json) {
    console.log(json);
}

function init(){
  // init data
  var json =loadJsonFromPHP(json);
 }

getiing a error 无法在 console.log(json); 读取未定义的属性'id',我是PHP的新手,并且不知道我在哪里出错了,

我在我的js中尝试过.getJson但是得到错误ReferenceError:$未定义

function init(){
      // init data
var json=$.getJSON('http://localhost/myfile.php', function(data) {
    console.log(data);
});

}

完全坚持,任何帮助,谢谢。

5 个答案:

答案 0 :(得分:0)

你的myfile.php应该只包含echo json_encode($ data)

答案 1 :(得分:0)

在“myfile.php”中你可以做这样的事情......

<?php
$array = array(
   "success" => true,
   "message" => "Greetings from the Server!"
);
echo json_encode($array);
?>

在您的HTML文件中......

<html>
<head>
<script src='js/jquery.js'></script> <!-- your path to jquery goes here -->
</head>
<body>

<div id="target">Message from Server will appear here</div>

<script type="text/javascript">
    // On ready 
    $(function() {
    $.ajax({
        url: 'myfile.php',
        // Before sending the request, show a loading message
        beforeSend: function(){
            $("#target").html("Waiting for response...");
        }
    })
    .done(function(response){
        // Write the response message to the target div
        $("#target").html(response.message);
    });
</script>

<body>
</html>

那应该真的这样做。

您可以在此处引用.ajax的jQuery文档:http://api.jquery.com/jQuery.ajax/

答案 2 :(得分:0)

在javascript中,您需要解析JSON字符串:

var jsonobj = JSON.parse('<?php echo json_encode($data) ?>');

答案 3 :(得分:0)

http://localhost/myfile.php中确保您拥有:

//You cannot have any echo here you must have clean json-string.
$json = json_encode( $data );
if( json_last_error() === JSON_ERROR_NONE ){
    http_response_code(200);//ok
    header('Content-type: application/json');
    die( $json );
}else{
    http_response_code(500);//server error
    die( 'Cannot encode $data.' );
}

答案 4 :(得分:0)

最后 XMLHttpRequest 在example2.js中为我设计,希望它会有所帮助。

request = new XMLHttpRequest( );
 request.open("GET", "my.php", false);
 request.send(null);
  var json = eval ("(" + request.response + ")");