2017-05-08 5 views
0
私は json_decodeしようとした

json.stringifyデータは、それがNULLそう** json_last_errorがエラーを知るために使用される返され、それが次のエラーメッセージajaxとjavascriptオブジェクトを使用して別のPHPに値を渡す..?

構文エラー、不正な形式のJSONを返さ

誰でもjavascript関数で囲まれた私のajaxコードを確認して、エラーが起こったことを確認できます。以下

スクリプトコード下

<script> 
function callphp(){ 
var dataa = {}; 
dataa.dateipone = jQuery("#dateInputone").val(); 
dataa.dateiptwo = jQuery("#dateInputtwo").val(); 
dataa.ino = jQuery("#ino").val(); 
dataa.submit = "submit"; 
alert("Hello") 
$.ajax({ 
    url : "six-cuf.php", 
    type: 'POST', 
    data :JSON.stringify(dataa), 
    contentType : "application/json; charset=utf-8", 
    success:function(data) 
    { 
     if(data){ 
      alert(data); 
      //console.log("Data from Server"+JSON.stringify(data)); 
     } 
     else{ 
      console.log("Data is empty"); 
     } 
    }, 
    error: function(xhr) { 
     alert('Error! Status = ' + xhr.status + " Message = " + xhr.statusText); 
     //console.log('Error! Status = ' + xhr.status + " Message = " + xhr.statusText); 
    } 
    }); 
} 

はdatetwo、dateipone、dateiptwoとdateoneの6 cuf.php

$data = json_decode($_POST['dataa']); 
    print_r($data); 

    switch (json_last_error()) { 
    case JSON_ERROR_NONE: 
     echo ' - No errors'; 
     break; 
    case JSON_ERROR_DEPTH: 
     echo ' - Maximum stack depth exceeded'; 
      break; 
    case JSON_ERROR_STATE_MISMATCH: 
     echo ' - Underflow or the modes mismatch'; 
      break; 
    case JSON_ERROR_CTRL_CHAR: 
     echo ' - Unexpected control character found'; 
      break; 
    case JSON_ERROR_SYNTAX: 
     echo ' - Syntax error, malformed JSON'; 
      break; 
    case JSON_ERROR_UTF8: 
     echo ' - Malformed UTF-8 characters, possibly incorrectly encoded'; 
      break; 
    default: 
     echo ' - Unknown error'; 
     break; 
    } 

    if(isset($_POST["dateipone"],$_POST["dateiptwo"],$_POST["ino"],$_POST["options"],$_POST["dateone"],$_POST["datetwo"],$_POST["submit"])) 
{ 

    //php code 
} 

である...いずれかの値このペアは空になります。

+0

あなたは間違いなく 'あなたには' $ _POST [ 'DATAA']を持っていません'$ _POST'です。 –

+0

@u_mulder ...あなたはJavaScriptのオブジェクト値が私の別のPHPページに投稿されていないと言っています.. ?? – Pradeep

+0

'print_r($ _ POST)'とあなたが持っているものを参照してください。 –

答えて

0

サーバーに渡す前にjsonに何かをエンコードする必要はありません。あなたは、ブラウザが残りを行いますが、プレーンなJavaScriptのオブジェクトを渡すことができます。

var dataa = {}; 
dataa.dateipone = jQuery("#dateInputone").val(); 
dataa.dateiptwo = jQuery("#dateInputtwo").val(); 
dataa.ino = jQuery("#ino").val(); 
dataa.submit = "submit"; 
$.ajax({ 
    url : "six-cuf.php", 
    type: 'POST', 
    data: dataa, 
    // no content-type here! 
    success:function(data) { 

    } 
}); 

いつものように、サーバ側のチェック$_POSTアレイ上:

print_r($_POST); 
// you will have keys: `dateipone`, `dateiptwo`, `ino` and `submit` in it 
関連する問題