У меня есть php-скрипт, выполняющий SQL-запрос на моем экземпляре MSSQL Server. Я получаю хороший результат. Теперь я пытаюсь манипулировать своим результатом из $ .ajax. Но кажется, что способ заполнения полей в объектной таблице «Object.field_name» не работает в моем JQuery Ajax (возможно, потому что есть больше, чем одна строка)Доступ к многомерному массиву PHP в JQuery Ajax
Таблица json_encoded в php. Не могли бы вы помочь мне получить доступ к этим данным и поместить их в глобальный vairable?
PHP скрипт
<?php
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json'); //Newly added
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
try {
$hostname = "SQLEXPRESS";
$port = 1433;
$dbname = "MY_BD";
$username = "user";
$pw = "password";
$dbh = new PDO ("sqlsrv:Server=$hostname,$port;Database=$dbname","$username","$pw");
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch (PDOException $e) {
echo "Failed to get DB handle: " . $e->getMessage() . "\n";
exit;
}
$stm = $dbh->prepare("SELECT * FROM dbo.emp");
$stm->execute();
$table_1 = array();
while($row = $stm->fetch(PDO::FETCH_ASSOC)){
$table_1[] = $row;
}
echo json_encode($table_1);
?>
скрипт Javascript
var my_data ;
function get_my_data(){
$.ajax({
type: 'POST',
url: 'http://localhost:8012/My_Script/test_1.php',
dataType: "json",
crossDomain: true,
success: function(result) {
my_data = result;
alert(my_data); //This will alert [Object object]
alert(my_data.id); //This will alert undefined ; id being on of the
//result fields
}
});
}
alert(my_data); //This will alert undefined (not even [Object Object]
//as if the global variable my_var can't be access in the $.ajax part
$(document).ready(get_my_data);
Whithout Jquery Ajax, вывод мой PHP скрипт в браузере:
[{"id":"1","name":"John","sal":"1525.21","age":"45"}]
[{"id":"2","name":"Cecily","sal":"854.75","age":"28"}]
[{"id":"3","name":"Alfred","sal":"945.28","age":"37"}]
для начинающих - «успешный» стрельба? где ваш обработчик ошибок ajax? В вашей конфигурации CORS не хватает нескольких других заголовков «Access-Control». – charlietfl
Что вы можете получить, если вы предупреждаете 'my_data [0] .id'? Похоже, что ваши результаты представляют собой массив объектов, хотя я не могу сказать, показывали ли вы три отдельных результата или 1 результат с 3 строками? Кроме того, вы получите больше данных, если вы используете 'console.log()' вместо 'alert()' и проверьте консоль своего браузера для вывода, что позволит вам изучить выход. – stratedge
@charlietfl для моего CORS (забудьте о них. Я добавил одну строку, но они в порядке) ... Далее ошибка hasling. Не беспокойтесь об этом, так как этот скрипт использовался в случае «Hello world» раньше, и он работал. Теперь единственное, что это многомерный массив, а также то, что я хочу использовать глобальную переменную –