2012-04-20 9 views
1

結果をjqueryのgetJSON関数に渡して正常に動作しないPHPコードがあります。ここ php jsonがjqueryデータグリッドをロードする

は私のコードです:

$data["total"]=mysql_num_rows($s); 
    while ($r = mysql_fetch_array($s)) 
    { 

     $ris_sql["utente"]=tv($r["utente"]); 
     $ris_sql["contratto"]=tv($r["contratto"]); 
     $ris_sql["login"]=tv($r["login"]); 
     $ris_sql["piattaforma"]=tv($r["piattaforma"]); 
     $ris_sql["azione"]=tv(format_valid($r["azione"])); 
     $ris_sql["data"]=tv($r["data"]); 
     $ris_sql["note"]=tv(str_replace("<br>","",$r["note"])); 
     $riga[]=$ris_sql; 
    } 
    $data["rows"]=json_encode($riga, JSON_FORCE_OBJECT); 
    echo json_encode($data); 

私は、文字列の代わりに一連のオブジェクトのようなJSONの結果で私の行その要素を参照してください放火犯を使用しようとすると、私のコードで何が間違っています?

答えて

0

$riga JSONをダブルエンコードしています。ブラウザに返信する$data配列の残りの部分をエンコードする前に、$riga部分を別々にエンコードしないでください。

// Instead of 
$data["rows"] = json_encode($riga, JSON_FORCE_OBJECT); 
// This double-encodes the contents of $data before outputting back to the browser or ajax call 
echo json_encode($data); 

// Just do: 
echo json_encode($data, JSON_FORCE_OBJECT); 

形式が何を期待されていない場合、代わりにあなたはobjectに配列から$rigaをキャストしてJSON_FORCE_OBJECTせずに全体を符号化することができます。

// Cast $riga from an assoc array to an instance of stdClass 
$data['rows'] = (object)$riga; 
// And then JSON encode the whole $data 
echo json_encode($data); 
+0

マイケルにお返事ありがとうございます。 – haltman

+0

@haltmanそれがあなたのために働く場合、答えを受け入れることを忘れないでください –

関連する問題