0

我有一个数据库表,其中包含一些我想使用 PHP 获取然后使用 JSON 对它们进行编码的行。

目前,我的数据库结构如下:

idcomponente | quantidade

在 PHP 中获取值后,我想知道如何使用 JSON(具有多行,使用相同的名称)对它们进行编码,以便我可以使用jQuery.post().

$.post('test.php',{id:id},function(data){
    //READ data HERE
});

提前致谢

编辑:

到目前为止,我做了这个:

$.post('edit/producomponentes.php',{id:id},function(data){
    console.log(data);
});


记录这个:

[Object { componente="1", quantidade="2"}, Object { componente="3", quantidade="3"}]

现在我怎样才能遍历每一行并获取它们的属性?(data.componente,data.quantidade)

4

4 回答 4

3

在这里,我试着给你一些想法。

key => value使用对在 PHP 中创建关联数组,例如

$data = array('id' => 1, 'quat' => 10, 'id' => 2, 'quat' => 20)

然后json_encode()像这样发送

header('Content-type: application/json');  // don't miss it
echo json_encode(array('data' => $data));

在 jQuery 中

$.post('edit/producomponentes.php',{id:id},function(response){
    //READ data HERE.
    console.log(response.data); // you will get a json Object
}, 'json');
     ^-------- set dataType as json, then you don't any extra parse effort

根据编辑

 $.post('edit/producomponentes.php',{id:id},function(data){
        $.each(data, function(index, value) {
           console.log(value.componente);
           console.log(value.quantidade);
        });
    }, 'json');
于 2012-06-20T08:56:20.650 回答
2

在 test.php 中

$id = $_POST['id']; // if is 'id' passed to fetch one row
$db = new mysqli(HOST,USER,PASS,DB_NAME);
$q = "SELECT * FROM table WHERE id='$id'";
$result = $db->query($q);

编辑正确的标题以获取 json 响应

header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');
echo json_encode($result->fetch_all(MYSQLI_ASSOC));
$result->close();
$db->close();

在 JavaScript 中

$.post('test.php',{id:id},function(data){
    console.log(data); // data is already a js object
},'json'); // specify the data type you expect
于 2012-06-20T09:10:34.267 回答
1

使用 JSON.parse 将数据作为对象获取

var object1 = JSON.parse(data);
alert(object1.property1);

要在 php 上编码,请使用

json_encode($result); //assuming you're getting a result set.

编码你的结果集和

echo json_encode($result);

将其打印到文档正文,以便您可以使用 jquery 获取结果数据

文档在这里

您需要对其进行多次测试,耐心等待并在 php 端使用 echo 并在客户端使用 alert() 来检查您的值。

于 2012-06-20T08:57:51.103 回答
1

您可以将每一行放在一个数组中并json_encode()在最终数组上运行以获得一个大的 JSON 对象。

参考 - http://php.net/manual/en/function.json-encode.php

于 2012-06-20T08:59:50.707 回答