내 MSSQL Server 인스턴스에서 SQL 쿼리를 실행하는 PHP 스크립트가 있습니다. 나는 좋은 결과를 얻는다. 이제 $ .ajax에서 그 결과를 조작하려고하지만 Obejct 테이블의 acessing 필드의 "Object.field_name"방식이 내 Jquery Ajax에서 작동하지 않는 것 같습니다 (어쩌면 한 줄이 돌아 왔기 때문일 수도 있습니다)Jquery Ajax에서 다차원 PHP 배열에 액세스
테이블은 php에서 json_encoded입니다. 이 데이터에 액세스하여 전 세계에 배포 할 수 있도록 도와 주시겠습니까?
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);
?>
자바 스크립트
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);
JQuery와 아약스, 브라우저 내 PHP 스크립트의 출력은 Whithout :
[{"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"}]
은 '성공'발사입니까? 아약스 오류 처리기는 어디에 있습니까? CORS 설정이 다른 여러'Access-Control' 헤더가없는 것 같습니다. – charlietfl
'my_data [0] .id'를 경고하면 어떻게됩니까? 3 개의 개별 결과를 표시했는지 또는 3 개의 결과가 1 개 있는지를 알 수는 없지만 결과가 객체 배열 인 것처럼 보입니까? 또한'alert()'대신'console.log()'를 사용하고 출력을 탐색 할 수 있도록 브라우저의 콘솔에서 출력을 확인한다면 더 많은 데이터를 얻을 수 있습니다. – stratedge
@charlietfl 내 CORS (잊어 버려. 내가 한 줄 추가했지만 그들은 괜찮아요) ... 다음 오류 hadling입니다. 이 스크립트는 이전에 "Hello world"예에서 사용되었으므로 걱정하지 마십시오. 이제는 다차원 배열이고 전역 변수를 사용하려고합니다. –