JSON编码MySQL结果,然后使用jQuery读取

我有一个数据库表,其中包含一些我想用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)

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

使用key => value pair在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'); 

在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 

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

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

使用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()来检查你的值。