这是我在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"}