2016-06-28 15 views
1

私は自分のjquery関数に私のPHPスクリプトからエラーを返す方法を理解しようとしています。私はthis questionからトップの答えに行きました。ここで私はデータオブジェクトの中に戻るjsonオブジェクトをエコーし​​ますが、jsonオブジェクトの個々の部分を見ることはできません。投稿の返信からデータjsonオブジェクトにアクセスするにはどうすればよいですか?私のコンソールには常にデータエラーは表示されません。jquery投稿にデータが返される方法は?

$.post("../dist/scripts/submitOrder.php", 
    { 
     clientID: clientID, 
     date: date, 
     po: po, 
     orderType: orderType, 
     orderlines:JSON.stringify(productArray) 
    }, 
    function(data, status){ 
     console.log("Data: " + data + "\nStatus: " + status); 
     if(data.error){ 
      console.log("BIG ERROR:" + data.error.message); 
     } else { 
      console.log("no data error"); 
     } 
    }) 
     .fail(function() { 
     console.log("Fail Data: " + data + "\nStatus: " + status); 
    }); 

のrelavent .PHPスクリプトは

if ($conn->query($sql) === TRUE) { 
    echo "New record created successfully "; 
} else { 
    $conn->close(); 
    //echo "Error: " . $sql . "<br>" . $conn->error; 
    echo "error!!!"; 
    echo json_encode(array('error' => array(
    'message' => $sql, 
    'code' => $conn->error, 
    ))); 
    exit; 

} 

私のコンソールでは、これが無効であるとJSONを引き起こし、この

Data: <br /> 
<font size='1'><table class='xdebug-error xe-notice' dir='ltr' border='1' cellspacing='0' cellpadding='1'> 
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>(!)</span> Notice: Undefined index: clientID in C:\wamp\www\admin\startbootstrap-sb-admin-2-1.0.8\dist\scripts\submitOrder.php on line <i>11</i></th></tr> 
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr> 
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr> 
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0015</td><td bgcolor='#eeeeec' align='right'>259296</td><td bgcolor='#eeeeec'>{main}()</td><td title='C:\wamp\www\admin\startbootstrap-sb-admin-2-1.0.8\dist\scripts\submitOrder.php' bgcolor='#eeeeec'>..\submitOrder.php<b>:</b>0</td></tr> 
</table></font> 
error!!!<br /> 
<font size='1'><table class='xdebug-error xe-warning' dir='ltr' border='1' cellspacing='0' cellpadding='1'> 
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>(!)</span> Warning: main(): Couldn't fetch mysqli in C:\wamp\www\admin\startbootstrap-sb-admin-2-1.0.8\dist\scripts\submitOrder.php on line <i>32</i></th></tr> 
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr> 
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr> 
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0015</td><td bgcolor='#eeeeec' align='right'>259296</td><td bgcolor='#eeeeec'>{main}()</td><td title='C:\wamp\www\admin\startbootstrap-sb-admin-2-1.0.8\dist\scripts\submitOrder.php' bgcolor='#eeeeec'>..\submitOrder.php<b>:</b>0</td></tr> 
</table></font> 
{"error":{"message":"INSERT INTO Orders (clientID, dateSubmitted , type)\r\nVALUES ('0', '', 'internal')","code":null}} 
Status: success 
VM256:279 no data error 
+2

xdebugがONになっているように見えます( 'error !!! 'と一緒に)出力に余計なものが追加されています – Neal

+0

プロダクションコードでは、SQLやテーブルの詳細を誰かが見ることができませんエラー。 – 4castle

+0

PHPエラー/警告を修正したら、 'echo"エラーを取り除きたいと思います!!! ";'ちょうどjsonをエコーし​​ます。 – Rasclatt

答えて

2

あなたのPHPスクリプトが出力されたPHPのエラーを示しています。

次のいずれかを示すから無効エラーことができます。

error_reporting(0); 

かは、エラーを修正します。

+0

私のPHPコードに' error_reporting(0); 'を追加しました。エコー。私はまだ 'no data error'を取得していますが、何か他のものがありますか? – john

+0

SQLが成功した場合、レスポンスはJSONではありません。おそらくそれを見てください。 –

+0

ああ、それはJSONでした、それはトリックを行い、それを動作させる 'var response = jQuery.parseJSON(data);'を解析する必要がありました。アドバイスをいただきありがとうございます。 – john

関連する問題