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


Transfering arrays from php with json to browser

我有一个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作为一个整体是非常新的。谢谢

首先,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
    }
}));

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);
?>