2011-07-14 11 views
0

解析JSONにJSONを通過した後デコードPHPでPHP

私の変数jsonvarは{「格付け」:「良い」}の形式である

私はこの$アヤックスコードへとそれを通じ押したら私のPHP(jsonproc.php)がどのように見えるか混乱しています。

$.ajax({ 
       url: 'jsonproc.php', 
       data: {js:jsonvar}, 
       dataType: 'json', 
       type: 'post', 
       success: function (j) { 
         if (j.ok){ 
          alert(j.msg); 
         } else { 
          alert(j.msg); 
         } 
        } 
       }); 

私はそれは私が戻ってそれをエコーし​​かし、警告(j.msg)を使用して

echo json_encode($response); 

は "ヌル" 値を示し

$decoded = $_GET['js']; 
$response = array(
    'ok' => true, 
    'msg' => $decoded['rating']); 

として設定しています。

JSONを正しく渡していると仮定して、どのように評価を指して「良い」という値を得ることができますか?

おかげ$ _REQUESTを使用して解決

EDIT

は、私は動作しませんでしたが、$ _GETをJSONを取得することができました。

また、キーは$ decoded - > {'rating'}を使っていました。デコードされたものはもはや単なる配列ではありません。私は思っていませんか、それともdiff型ですか?あなたがオブジェクトを渡す場合

data: "js="+jsonvar, 

jQueryのJSONに変換しますが、あなたはJSONとクエリ文字列を混合している:

+0

あなたのAJAXスクリプトから「のjs =」を削除する必要があり、その後、PHPであなたは$ _GETから「レーティング」をアクセスすることができます['評価'] – jchavannes

答えて

3

ここでデータ型を混合しているように見えます。

試してみてください。

data: {js: jsonvar}, 

あなたはまた、json_decode($ _ GET [ 'のJSを'])を実行する必要があるかもしれません。

編集:Firebug/Webインスペクタを使用して、jQueryが投稿している内容を再確認できます。確実に知るための最も簡単な方法。あなたのPHPファイルの先頭にこれを追加すること

-2

試してみてください。

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