1

私は PHP、jQuery (Ajax)、Mysql スタック全体の初心者であり、これを理解することはできません。

Mysql を呼び出して 1 行を返す PHP コードがいくつかあります。同じページで、php から返された json を jquery に読み込み、JSON.parse関数を使用して、そのオブジェクトの情報を次のように取得できclient.firstnameますclient.lastname。 .

PHP:

        $query="SELECT * FROM clients WHERE  clientid='$clientid'";
        $result=mysqli_query($con,$query) or die(mysql_error());
        $num_rows=mysqli_num_rows($result);         
        $row = mysqli_fetch_array($result);
        $client=json_encode($row);

jQuery:

$(document).ready(function() {
    data='<?php echo $client?>';
    client=JSON.parse(data);
    $("#company").val(client.company);
    $("#firstname").val(client.firstname);
});

ただし、同じクエリを実行し、同じデータを返す PHP ファイルに対して ajax 呼び出しを実行しようとすると、問題が発生します。ajax呼び出しでjsonオブジェクトを受け取ったら、それを印刷して、行を受け取っていることを確認できますが、JSON.parse(data)関数を呼び出すとすぐにエラーメッセージが表示されます

PHP:

$query="SELECT * FROM clients WHERE  clientid='$clientid'";
$result=mysqli_query($con,$query) or die(mysql_error());
$num_rows=mysqli_num_rows($result);         
$row = mysqli_fetch_array($result);
$client=json_encode($row);
echo $client; //this is the only different line

jQuery

$.ajax({
    type: "POST",
    url: "ClientDetails.php",
    data: "clientid="clientid,
    datatype: "json",
    success: function(data){
        client=JSON.parse(data);
        $("#company").val(client.company);
        $("#firstname").val(client.firstname);
    }
});

実行すると、Firebug で次のエラー メッセージが表示されます。

SyntaxError: JSON.parse: 予期しない文字

何が間違っているのかわかりません。どんな助けでも大歓迎です。

4

1 に答える 1

2

それを解析する必要はありません。dataType を指定したため、jQuery が解析を行います。

success: function(client){
    //client=JSON.parse(data);
    $("#company").val(client.company);
于 2013-09-19T22:13:31.817 に答える