環境: PHP 5.3.5 MySQL サーバー 5.5.8
初めての ajax 呼び出しを作成し、多くの決意をした後、結果を得ました。結果は文字列として返されているようです。お願いするときのために
alert(result[0]);
1文字しか返されません。
フィールド名を使用しようとすると、未定義の値が返されます。
私のAJAXのJavaScriptは次のとおりです。
$.ajax({
type: "POST",
url: "models/ajaxHandler.php",
data: "handler=this&stu=21",
success: function(result){
if (result !== null)
{
alert(result + " " + result[0] +" " result['firstname']);
var obj = JSON && JSON.parse(result) || $.parseJSON(result);
alert(obj + " " + obj[0] + " " + obj['firstname']);
}
ShowDialog(false);
e.preventDefault();
},
error: function()
{
alert("ajax failure");
}
});
そのため、PHP で fetchAll() を使用して mysql への PDO 接続を使用して結果が取得されると、次のようにphpから結果を返します。
echo json_encode($results);
結果カムバックのアラートは次のようになります。
[{"firstname":" Test","0":" Test","lastname":" One","1":" One","id":"2","2":"2", "st_usage_id":null,"3":null},{"firstname":" Mr","0":" Mr","lastname":" Two","1":" Two","id": "3","2":"3","st_usage_id":null,"3":null},{"firstname":" Mr","0":" Mr","lastname":" Three", "1":" Three","id":"5","2":"5","st_usage_id":null,"3":null}] [未定義
JSON の解析では、すべての結果がオブジェクトとして返されます。
また、次を使用してphpで結果を返そうとしました:
print_r(json_encode($results));
上記と同じ文字列が表示されます。最後に使った
$var_dump(results);
これにより、以下が返されました。
array(3) {
[0]=>
array(8) {
["firstname"]=>
string(7) " DrTest"
[0]=>
string(7) " DrTest"
["lastname"]=>
string(4) " One"
[1]=>
string(4) " One"
["user_public_info_id"]=>
string(1) "2"
[2]=>
string(1) "2"
["st_usage_id"]=>
NULL
[3]=>
NULL
}
[1]=>
array(8) {
["firstname"]=>
string(3) " Dr"
[0]=>
string(3) " Dr"
["lastname"]=>
string(4) " Two"
[1]=>
string(4) " Two"
["user_public_info_id"]=>
string(1) "3"
[2]=>
string(1) "3"
["st_usage_id"]=>
NULL
[3]=>
NULL
}
[2]=>
array(8) {
["firstname"]=>
string(3) " Dr"
[0]=>
string(3) " Dr"
["lastname"]=>
string(6) " Three"
[1]=>
string(6) " Three"
["user_public_info_id"]=>
string(1) "5"
[2]=>
string(1) "5"
["st_usage_id"]=>
NULL
[3]=>
NULL
}
}
a undefined
何が欠けているのかわかりませんが、それは単純なものだと確信しています。私はすべてを試したような気がします。誰かが私がどこで間違ったのか教えてもらえますか?