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()配置し、最終的な配列で実行して、1 つの大きな JSON オブジェクトを取得できます。

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

于 2012-06-20T08:59:50.707 に答える