2016-11-11 12 views
0

PHPのAJAX呼び出しで小さなjavascriptを実行すると、JSON parsererrorが返されます。 PHPでAJAX:PHPのエラーが返されました:JSON解析が失敗しました。

私は、JSONは、このような配列で満たされていることがわかります。 JSONエンコード:{"Year":"2012","Make":"Ford","Model":"Taurus","Error":"no error"}

Thisサイトです:

訪問者がフィールドVINを離れるときAJAXが呼び出されます右の3つのフィールドを自動的に埋める必要があります。 AJAX呼び出しのあなたの誤差関数で

function decode_my_vin(myvin) { 
 

 
alert("javascript began"); 
 

 
dataoneID = '00000'; 
 
dataoneKEY = 'x0x0x'; 
 

 
jQuery.ajax(
 
    { 
 
    cache: false, 
 
    type: 'POST', 
 
    url: '/wp-content/themes/Impreza-child/vin-decoder.php', 
 
\t dataType: "json", 
 
    data: { 
 
\t \t \t 'value1_VIN': \t myvin, 
 
\t \t \t 'value2_ID': \t dataoneID, 
 
\t \t \t 'value3_KEY': \t dataoneKEY, 
 
\t \t }, 
 
\t success: function(response) { 
 
\t \t 
 
\t \t \t var resultYear = response.Year; 
 
\t \t \t var resultMake = response.Make; 
 
\t \t \t var resultModel = response.Model; 
 
\t \t \t var resultMessage = response.Message; 
 
\t \t \t alert("success returned: Year " + resultYear + " Make " + resultMake + " Model " + resultModel + " Message " + resultMessage); 
 

 
\t \t  document.getElementById("fld_7290902_1").value = resultYear; 
 
\t  \t document.getElementById("fld_1595243_1").value = resultMake; 
 
    \t \t document.getElementById("fld_7532728_1").value = resultModel; 
 
    \t \t document.getElementById("fld_7532728_1").value = resultMessage; 
 

 
\t \t \t return; 
 
\t \t }, 
 
    error: function (jqXHR, exception) { 
 
     var msg = ''; 
 
     if (jqXHR.status === 0) { 
 
      msg = 'Not connect.\n Verify Network.'; 
 
     } else if (jqXHR.status == 404) { 
 
      msg = 'Requested page not found. [404]'; 
 
     } else if (jqXHR.status == 500) { 
 
      msg = 'Internal Server Error [500].'; 
 
     } else if (exception === 'parsererror') { 
 
      msg = 'Requested JSON parse failed.'; 
 
     } else if (exception === 'timeout') { 
 
      msg = 'Time out error.'; 
 
     } else if (exception === 'abort') { 
 
      msg = 'Ajax request aborted.'; 
 
     } else { 
 
      msg = 'Uncaught Error.\n' + jqXHR.responseText; 
 
     } 
 
\t \t alert("Error in jquery: " + msg); 
 
     $('#post').html(msg); 
 
\t }, 
 
\t complete: function(value) { 
 
\t \t \t alert("returned after complete: " + value); 
 
\t \t } 
 
\t }); 
 
}
<?php 
 

 
    header('Content-Type: application/json'); 
 

 
    $vinResult = array(
 
     'Year' => '2012', 
 
     'Make' => 'Ford', 
 
     'Model' => 'Taurus', 
 
     'Error' => 'No Error' 
 
\t); 
 

 
    echo json_encode($vinResult); 
 
?>

+0

などdata.Yearによって、あなたの応答を解析var data = jQuery.parseJSON(response);を使用して、アクセスフィールドへ

。なぜなら、あなたのサイトを調べると、エラー '$'が定義されておらず、何のajaxリクエストも送られなかったからです。 – Harish

+0

うーん..いいですがあなたの質問は何ですか? – Viney

+0

@Novice:質問は:なぜ、PHPでビルドされた正しいjsonが、私の呼び出し元AJAXの成功部分に表示されないのでしょうか?代わりに、json parsererrorを使ってエラー部分を起動します。最後に、この問題を解決するために何ができるでしょうか。 – nicecap

答えて

0

、それが機能しないと言って$('#post').html(msg);ためにエラーが発生します。 $('#post')の代わりにjQuery('#post')を使用してください。 `document.ready`機能でスクリプトを入れて、jQueryの後、あなたのJSファイルをリンク

関連する問題