Хорошо, так что я немного новичок в JSON. Я пытаюсь связать вызов AJAX (запрос PHP mssql), который возвращает значения обратно в исходную форму через JSON. Я получаю [object Object]
вместо фактического значения переменной. Через некоторые поиски я думаю, что проблема связана с разбором, но я думал, что json_encode
справился с этим. Или, может быть, это так, и я не правильно структурировал это.AJAX json_encode return [object Object]
Вот что я пытаюсь выполнить: В форме html есть 3 поля: номер учетной записи, имя учетной записи и адрес1. Я хочу, чтобы пользователь мог ввести номер учетной записи, а затем заполнить поля имени и адреса на размытие с помощью результатов запроса mssql.
Вот что у меня есть: HTML
<body>
<label>Account Number:</label><input type="text" id="acctnumber" />
<label>Account Name:</label><input type="text" id="acctname" />
<label>Address 1:</label><input type="text" id="address1" />
</body>
Jquery (я поставил значение входного acctnumber в только для тестирования)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#acctnumber").blur(function(){
$.ajax({
url: "ajaxtestscript.php?acctnumber=hfi01",
dataType: "json", //the return type data is jsonn
success: function(data){ // <--- (data) is in json format
$("#acctname").val(data.Name);
$("#address1").val(data.Address);
//parse the json data
}
});
});
});
</script>
PHP
<?php
header('Content-Type: application/json');
//mssql connection info//
$acctnumber = $_GET["acctnumber"]; // we received this from the json call
//declare the SQL statement that will query the database
$query = "select[description],[daddr1] from trCustomer where company = '$acctnumber' and archived = 0";
//execute the SQL statement and return records
$rs = $conn->execute($query);
$test = array();
$test['Name'] = $rs[description];
$test['Address'] = $rs[daddr1];
echo json_encode($test);
//echo $name.$address; put this in to test the query was working, which it was
//close the connection and recordset objects freeing up resources
$rs->Close();
$conn->Close();
$rs = null;
$conn = null;
?>
Когда я на самом деле попробовать это в форме html, я вводим значение номера учетной записи (жестко запрограммированное в этой точке) и выхожу элемента размытия элемента, а в двух других полях ввода получается [object Object]
. Хотя, если я просто echo
мой запрос назад, я могу видеть значения, поэтому я думаю, что я сделал что-то неправильно или что-то оставил с моим json_encode
. Любая помощь будет очень оценен.
вам нужно поделиться «данными» для большей ясности. –
вы говорите, что вы получаете [Object Object], когда вы добавляете предупреждение или console.log в функцию успеха? –
Когда вы укажете 'json' как dataType, строка, возвращаемая из вашего php-скрипта, будет проанализирована как json, так что' data' является объектом javascript. Если строка правильная json, конечно ... Чтобы увидеть, что внутри, вы можете сделать 'console.log (data);' в функции успеха. – jeroen