加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在AJAX调用中从PHP返回JSON对象?

发布时间:2020-12-16 01:37:21 所属栏目:百科 来源:网络整理
导读:这是我在jQuery AJAX调用期间调用的 PHP代码: ?php include '../code_files/conn.php'; $conn = new Connection(); $query = 'SELECT Address_1,Address_2,City,State,OfficePhone1,OfficePhone2,Fax1,Fax2,Email_1,Email_2 FROM clients WHERE ID = ?'; $c
这是我在jQuery AJAX调用期间调用的 PHP代码:
<?php
    include '../code_files/conn.php';
    $conn = new Connection();
    $query = 'SELECT Address_1,Address_2,City,State,OfficePhone1,OfficePhone2,Fax1,Fax2,Email_1,Email_2 
              FROM clients WHERE ID = ?';
    $conn->mysqli->stmt_init();
    $stmt = $conn->mysqli->prepare($query);
    $stmt->bind_param('s',$_POST['ID']);
    $stmt->execute();
    $result = $stmt->get_result();
    $row = $result->fetch_assoc();
    echo json_encode($row);
?>

客户端代码是:

$.post(url,{ID:$('#ddlClients').val()},function(Result){
            // Result
        }
      );

AJAX调用已成功完成.我得到Result的值为

“{”Address_1“:”分区办公室1“,”地址_2“:”XYZ路“,…..等等

我想要的是能够使用返回的值,如Result.Address_1,Result.Address_2等.但我不能使用上面的代码.我尝试使用$row = $result-> fetch_object()和$row = $result-> fetch_array(),但没有用.

我知道这可以通过服务器端的代码完成:

$row = $result->fetch_assoc();
$retVal = array("Address_1"=>$row['Address_1'],"Address_2"=>$row['Address_2'].......);
echo json_encode($retVal);

要么

$row = $result->fetch_object();
$retVal = array("Address_1"=>$row->Address_1,"Address_2"=>$row->Address_2.......);
echo json_encode($retVal);

有没有办法将$行直接发送到客户端JavaScript并准备好用作JSON对象,而无需先手动创建数组?

您从PHP脚本获得的响应是??纯文本.但是,您可以在回调函数中使用$.parseJSON将该字符串解析为对象:
$.ajax({
    url      : url,//note that this is setting the `url` property to the value of the `url` variable
    data     : {ID:$('#ddlClients').val()},type     : 'post',success  : function(Result){
            var myObj = $.parseJSON(Result);
            //you can now access data like this:
            //myObj.Address_1
        }
    }
  );

您可以通过将AJAX调用的dataType属性设置为json来让jQuery为您执行此操作:

$.ajax({
    url      : url//note that this is setting the `url` property to the value of the `url` variable
    data     : {ID:$('#ddlClients').val()},dataType : 'json',success  : function(Result){
            //you can now access data like this:
            //Result.Address_1
        }
    }
  );

以上示例期望服务器的响应采用此格式(来自您的问题):

"{"Address_1":"Divisional Office 1","Address_2":"The XYZ Road"}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读