0
PHPファイルからajax関数へのステータスメッセージをHTMLファイルで返すのに問題があります。送信すると、[Object object]が画面に表示されます。私が理解しているところでは、json_encodeはそのオブジェクトの$ answerをその値で返すことができます。私はここに何かを逃していますか私のhtmlファイル内json_encodeから[オブジェクトオブジェクト]を返す
PHP
<?php
require_once 'dbconfig.php';
require_once('FirePHPCore/fb.php');
ob_start();
$answer = new stdClass;
if(isset($_POST))
{
$uname;
$pword;
//email = ema
$ema;
$answer->result = "successful";
$answer->text = "";
foreach($_POST as $key => $value)
{
if($key == 'u')
{
$uname = $value;
}
else if($key == 'p')
{
$pword = $value;
}
else if($key == 'em')
{
$ema = $value;
}
}
}
else
{
$answer->result = "Error";
$answer->text = "Error Message";
}
$check = mysqli_query($con, "SELECT username FROM users WHERE username = '$uname'") or die(mysql_error());
$check2 = mysqli_num_rows($check);
if ($check2 != 0) {
$answer->text = "sorry username taken";
$ansr = json_encode($answer);
echo $ansr;
die('Sorry, the username is already in use.');
}
exit(0);
?>
アヤックス
$.ajax({
type: "POST",
url: "registration.php",
dataType: "json",
data : { u: un, p:p1, e:em },
cache: !1,
beforeSend: function(){
$("#submit").hide();
$('#status').text('please wait ...');
},
complete: function(){
$("#submit").show();
},
success: function(answer){
if(answer.result == "successful")
{
$("#status").html(answer.text);
}
else
{
$("#status").html(answer.result);
}
},
error: function(answer){
$("#status").text(answer);
}
});
何かアドバイスやヒントをいただければ幸いです。
私はあなたのJSONは実際にOKだと思うが、ajaxコールはint型の 'error'ブランチを終了し、' answer'オブジェクト全体を出力します。 '$("#status ")の代わりに' $( "status)).html(answer.text);'を使用すると正しいエラーメッセージが表示されます。 –
コンソールでオブジェクトを検査します。あなたのブラウザに組み込まれている開発ツールを使用して基本的なデバッグを行う必要があります – charlietfl
echo $ ansrの後にdie(str)がjson出力を破損します – Michael