1

我是整个 PHP、jQuery (Ajax)、Mysql 堆栈的新手,我想不通。

我有一些 PHP 代码调用 Mysql 并返回一行,在同一页面中,我将从 php 返回的 json 读取到 jquery 中,我使用该JSON.parse函数,我可以像这样检索该对象中的信息:client.firstnameclient.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

您不需要解析它,因为您指定了数据类型,所以 jQuery 会为您执行此操作。

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