2012-02-28 19 views
0

このようなjqueryでjson文字列をajaxに渡しました。私のJSONファイルには、チェックボックスとリストの値があります。PHPでJSON文字列を受け取ってデコードする方法は?

var jsonstr = JSON.stringify(result);     

ここで、「jsonstr」は選択されたフォーム要素である。 PHPで

function runAjax(jsonstr) 
    { 
       type:"POST", 
       url: "ajax.php", 
       data: 'json=' +jsonstr, 
       dataType: 'json', 
       headers: { 
        'Content-Type': 'application/json', 

       success: function(){ 
        alert('Test results submitted!'); 

       }, 

    }; 
    return false; 

私はこの糸状JSONを受け取るしようとしていますが、それは「ヌル」のような出力を与えていました。

$data= $_POST['json']; 
    //decode Json string to PHP object 
    $phpobj = json_decode($data,true); 
     print_r($data); 
     $phpobj = json_encode($data,true); 

私がやっているとし、一部を復号化する際に何をする必要があります何か問題はありますか?誰も助けることができますか?

+0

私は同様の問題を抱えています。 JSON文字列を表示できますか? – Illep

答えて

-2

あなたは非常に幸運、私はこの質問

var jsonObject = eval("(" + jsonFormat + ")"); 
+0

それは反対の質問に答える - javascriptのjson文字列を解読する方法 – wheresrhys

+0

evalは悪いです...これ以上のチェックをしなければ、アプリケーションのあらゆる種類のセキュリティホールが開かれます – klaustopher

0

を理解$ _POST [ 'JSON']の値を確認してください。それは{"a": "aaa"、 "b": "bbbb"}のようなものでなければなりません。

チェック部 "json_decodeを用いて、実施例#3一般的な間違い()" ここでhttp://php.net/manual/en/function.json-decode.php

2

あなたはJSON文字列として送信したい場合は、

このような
data: {json:jsonstr} 

を与えてくださいますので、

する必要があります
$.ajax({ 
       type : 'POST', 
       url : 'sample2.php', 
       data: {json:jsonstr}, 
       success : function(data){ 
        alert(data); 
       }, 
       error : function(XMLHttpRequest, textStatus, errorThrown) { 
        alert("error"); 
       } 
      }); 

これはうまくいくはずです。

実際にオブジェクトをjsonに変換する必要はありません。あなたは$.ajaxで直接それを与えることができます。

var data = {name:"Jack", age:12, place:"CA", marks:70}; 

$.ajax({ 
     type : 'POST', 
     url : 'post.php', 
     data: data, 
     success : function(data){ 

     }, 
     error : function(XMLHttpRequest, textStatus, errorThrown) { 

     } 
    }); 

とPHPで、あなたはあなたが次のことを試すことができ

$_POST['name'] 
$_POST['age'] 
$_POST['place'] 
$_POST['marks'] 
+0

_Hi @Diode、本当にありがとうjson string( "jsonstr")という形で結果を返します。今すぐこのjsonstrをPHPファイルに渡す必要があります。 – cherry

+0

最初のメソッドを使用することができます – Diode

+1

これは、必要なコントロール(名前、年齢、場所、マーク)がすべて含まれているフォームがある場合にのみ有効ですjsonがPHPに投稿された場​​合、php:// inputを読み込んでデータを取得する必要があります – danicotra

0

のように読むことができます:Javascriptを変更で

var jsonstr = JSON.stringify(result);

とシンプル

data: JSON.stringify({json: result}), 

から

data: 'json=' +jsonstr,

$data->{'variable-name'} 

でPHPは一度、このような方法でデータにアクセスすることを行ってデータの代わりに、このようこの1

$data=json_decode(stripslashes(file_get_contents('php://input'))); 

$data= $_POST['json'];

を読みます

関連する問題