2016-10-04 11 views
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); 
      } 
     }); 

何かアドバイスやヒントをいただければ幸いです。

+0

私はあなたのJSONは実際にOKだと思うが、ajaxコールはint型の 'error'ブランチを終了し、' answer'オブジェクト全体を出力します。 '$("#status ")の代わりに' $( "status)).html(answer.text);'を使用すると正しいエラーメッセージが表示されます。 –

+0

コンソールでオブジェクトを検査します。あなたのブラウザに組み込まれている開発ツールを使用して基本的なデバッグを行う必要があります – charlietfl

+0

echo $ ansrの後にdie(str)がjson出力を破損します – Michael

答えて

0

ありがとう@RamRaider! json_encodeを使用した直後にdie()を使用すると、データが無効になりました。

関連する問題