使用json将数组从php传输到浏览器

时间:2014-09-15 17:06:21

标签: php jquery

我有一个包含。

的php文件
<?php
$con=mysqli_connect("localhost", "user", "password", "stock");
if (mysqli_connect_errno()){
    echo "failed to connect:" mysqli_connect_error();
}
$grabCars = mysqli_query($con, "SELECT * FROM CARS");
while ($row = mysqli_fetch_array($grabCars)){
    $name = $row["Name"];
    $color = $row["Color"];
    $link = $row["Link"];
};
echo json_encode($name);
?>

好的,有人能告诉我这个代码是否有问题。关于如何显示这些数据的任何想法。

我还可以在另一端提供一些帮助我可以使用什么样的jquery来读取这些数据以及它看起来如何,我对网页设计很新,并且不太了解jquery或者如何ajax命令会处理这些信息。

编辑:

当前的Jquery脚本

$.ajax({
    url: "test.php"'
    type: "post",
    data: data,
    datatype: "json",
    success: function(result){
        console.log(result["$name"]);
    },
    error: function(){
        alert("error");
    }
});

这是我在控制台中显示一些信息的代码,但我什么都没收到,我在控制台中得到了一个数据未定义的消息。真的可以帮忙。对json和jquery以及整个php和webdesign都很新。感谢。

2 个答案:

答案 0 :(得分:0)

首先,while循环后不应该有;

$sampleArray = array();
while ($row = mysqli_fetch_array($grabCars)){
   $name = $row["Name"];
   $color = $row["Color"];
   $link = $row["Link"];

   array_push($sampleArray, array('name'=> $name, 'color' => $color, 'link'=>$link));
}
echo json_encode($sampleArray);

在你的JQUERY / Javascript中,类似这样,在AJAX成功中:

response( $.map( data, function( item ) {
    return {
         name: item.name,
         color: item.color,
         link: item.link
    }
}));

答案 1 :(得分:0)

json_encode如果你想编码多个值,你需要将它们放在一个数组中,取一个值参数

您的代码有一个示例

<?php
$con=mysqli_connect("localhost", "user", "password", "stock");
if (mysqli_connect_errno()){
    echo "failed to connect:" mysqli_connect_error();
}
$grabCars = mysqli_query($con, "SELECT * FROM CARS");
$result = array();
$i = 0;
while ($row = mysqli_fetch_array($grabCars)){
    $result[$i]['name'] = $row["Name"];
    $result[$i]['color'] = $row["Color"];
    $result[$i]['link'] = $row["Link"];
    $i++;
}
echo json_encode($result);
?>