SQL 쿼리를 실행하는 PHP 스크립트에서 데이터를 가져 오기 위해 데모를 만들고 관련 배열과 json_encodes를 가져 와서 호출하는 PHP 파일에서 JQuery ajax 호출자. 웬일인지 도착하지 않습니다 (파이어 버그 확인). 하지만 수동으로 2D 배열을 만들면 json_encode로 잘 동작합니다. 나는 왜 내 배열이 SQL에서 그것을 만들지 못하게 완전히 엉망진창이다. 결과 문자열을 diffed하고 그들은 정확히 동일합니다.PHP와 JQuery - PHP json_encoded 2D 배열이 JQuery Ajax에 도착하지 않는다
코드 :
...snip...
$.ajax({
type: "GET",
url: "getclients.php",
data: { username: $('#staff_list').val() },
//contentType: "application/json",
dataType: 'json',
success: function(results) {
console.log("results");
},
fail: function() {
console.log("fail!!");
},
error: function(r, e, m) {
console.log("error");
//console.dir(r);
console.log(e + ', ' + m);
}
})
.done(function(data) {
console.log("done");
//console.log(data);
});
console.log("done with change detection...");
...snip...
PHP 파일이에 어떤 도움을 주시면 감사하겠습니다
<?php
header('Content-Type: application/json');
error_reporting(0); // prevents a notice from breaking ajax
//session_start();
$username = $_GET['username'];
$json = array();
$test = array(
array("id"=>4,"first_name"=>"Miles","last_name"=>"O'Brian"),
array("id"=>5,"first_name"=>"Jean Luc","last_name"=>"Picard"),
array("id"=>6,"first_name"=>"Reginald","last_name"=>"Barclay")
);
$mysqli = new mysqli('mydomain', 'myuser', 'mypassword', 'mydb');
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
if ($stmt = $mysqli->prepare("SELECT `id`, `first_name`, `last_name` FROM client WHERE provider_username = ?")) {
$stmt->bind_param('s', $username);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
$json[] = $row;
}
$result->close();
}
$mysqli->close();
echo json_encode($json);
echo json_encode($test);// this works
?>
. 나는 PHP에 익숙하지 만 프로그래밍에는 신경을 쓰지 않아서 (매뉴얼과 구글을 포함하여) 내가 생각할 수있는 모든 것을 시도했고 완전히 완전히 엉망진창이었다.
오류보고를 켜야합니까? 확인해 볼까? 'console.log ('results')'대신'console.log (results)'대신에 응답을 넣는다. – Ghost
정확한 사용자 이름이있는 사용자가 있습니까? "like"를 의미하는 것처럼 보이는 "sql"에서 "="을 사용하고 있습니다 –
다음은 SQL에서 json_encode 된 결과 데이터 세트의 정확한 사본입니다 : [{ ""id ": 7,"first_name ":"Tom – seang