Aquí está mi código PHP llamada durante la llamada AJAX jQuery:Devolviendo un objeto JSON de PHP en una llamada AJAX?
<?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);
?>
Y el código de cliente es:
$.post(url, {ID:$('#ddlClients').val()},
function(Result){
// Result
}
);
La llamada AJAX se ha completado con éxito. Consigo el valor de Resultado como
"{"Address_1":"Divisional Office 1","Address_2":"The XYZ Road",.....and so on
Lo que quiero es ser capaz de utilizar los valores devueltos como Result.Address_1, Result.Address_2 y así sucesivamente. Pero no puedo hacerlo usando el código anterior. Intenté usar $row = $result->fetch_object()
y $row = $result->fetch_array()
, pero no uso.
Y sé que esto se puede hacer con este código en el lado del servidor:
$row = $result->fetch_assoc();
$retVal = array("Address_1"=>$row['Address_1'], "Address_2"=>$row['Address_2'].......);
echo json_encode($retVal);
o
$row = $result->fetch_object();
$retVal = array("Address_1"=>$row->Address_1, "Address_2"=>$row->Address_2.......);
echo json_encode($retVal);
¿Hay una manera de enviar el $row
directamente al lado del cliente JavaScript y listo para ser utilizado como objeto JSON, sin crear manualmente una matriz primero?
no sé si puede hacerlo, pero esto podría serle útil. http://stackoverflow.com/questions/383631/json-encode-mysql-results – insomiac