dongmei9961
2012-11-08 16:26 阅读 36

Json用PHP mysql和Jquery

I have a strange problem..

When i try to access my json code with the corresponding number [0], [1] etc.. I just get the first character of the object.

First of my code:

test2.php

if(isset($_POST['getCustomersArray'])){
$runQuery = mysql_query($Query) or
        die("SQL: $Query)<br />".mysql_error()); 
$numrows = mysql_num_rows($runQuery); 
$array = array(array());

for($i = 0;$i <= 2; $i++){
    $row = mysql_fetch_array($runQuery);
    $array[$i]['namn'] = $row['fornamn'];

}
    print json_encode($array);
}

scriptfile.js

$.ajax({
    type:"POST",
    url: "test2.php",
    data: "getCustomersArray=true",
    datatype: "JSON",
    cache: false,
    success: function(json) {
            console.log(json[0]);
     }
});

The result (from console.log(json[0])):

[

The result from just console.log(json):

[{"namn":"the first name"},{"namn":"The secound name"},{"namn":"the third name"}]

Im not sure why the squarebrackets are there but maybe they should be?

Ive been fuzzing with this problem for a while now and im sure its something stupid. Please help.

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    duanniu3385 duanniu3385 2012-11-08 16:28

    You have an incorrect option in the AJAX settings,

    datatype: "json",
    

    It should be:

    dataType: "json",
    
    点赞 评论 复制链接分享
  • dopuz8728 dopuz8728 2012-11-08 16:30
    datatype: "JSON",
    

    supposed to be

    dataType: "json",  // json in lowercase and T has to be captalized
    
    点赞 评论 复制链接分享
  • douwen1937 douwen1937 2012-11-08 16:32

    Make sure you have the following code:

    if(isset($_POST['getCustomersArray'])){
    $runQuery = mysql_query($Query) or
        die("SQL: $Query)<br />".mysql_error()); 
    $numrows = mysql_num_rows($runQuery); 
    $array = array(array());
    
    for($i = 0;$i <= 2; $i++){
        $row = mysql_fetch_array($runQuery);
        $array[$i]['namn'] = $row['fornamn'];
    }
    header("Content-Type: application/json; charset=UTF-8");
    print json_encode($array);
    }
    

    Here you need to set the content-type to application/json and set the correct charset to avoid any cross-browser issues. Take a look at the following tutorial from my website which should cover all of this and perhaps some improvements to your code: PHP jQuery Search Tutorial - using JSON object the proper way

    Hope this helps :)

    点赞 评论 复制链接分享

相关推荐