2012-03-14 19 views
0

PHP変数を取得して入力値に挿入するjQueryを取得しようとしています。私はどこからでも解決策を探していました。jQueryはPHPスクリプトからJSONエンコードデータを受け取りません

ここにjQueryコードがあります。

$(document).ready() { 
$(function() { 
    $.ajax({ 
     type: 'POST', 
     url: 'loadstuff.php', 
     data: { 
      'something': something, 
      'different': different, 
      'another': another 
      }, 
     dataType: 'json', 
     success: function(data) { 
     $('input[name=get_seomething_here]').val('something'); 
     $('input[name=get_different_here]').val('different'); 
     $('input[name=get_another_here]').val('another'); 
} 
    }); 

}); 
}); 

ここでPHP側です。

//connecting to db etc. 

$query = "SELECT something, different, another FROM stuff WHERE id='1'"; 
$result = mysql_query($query) or die(mysql_error()); 
$row = mysql_fetch_array($result); 

echo(json_encode(array('something' => $row['something'], 
'different' => $row['different'], 
'another' => $row['another'] 
))); 
+0

ヘッダーをtext/jsonに設定しようとしましたか? PHPでエコーする前に、次のようにしてください:header( 'Content-type:text/json'); – kingcoyote

+1

@kingcoyote jsonの適切な 'Content-type'は' application/json'です。 'header( 'Content-type:application/json');' – Edwin

+0

'JSON_NUMBERIC_CHECK'を強制することや、すべてのPHPの数字がJavaScriptの文字列型に変換されることに注意してください。照会している列に数値が含まれていない場合は、心配する必要はありませんが、それは良い習慣であるため、行う必要があります。 – Edwin

答えて

2

私はそれがあるべきだと思う:、

data = eval("(" + data + ")"); 

その後、あなたはdata.somethingを使用することができます。

$('input[name=get_seomething_here]').val(data.something); 
$('input[name=get_different_here]').val(data.different); 
$('input[name=get_another_here]').val(data.another); 
+0

ありがとうございます。私はあなたの提案に従ってコードを変更しました。しかし、何らかの理由でデータがまだ失われてしまいます。 – user1269386

-1

aletzoは右です..しかしようにあなたがしなければならないことを実行する前に、 data.differentとdata.another

+0

私はこれを自分でやっていますし、 'eval()'は不要であるだけでなく、WebアプリケーションをXSS攻撃に対して脆弱にする可能性があります。 – Edwin

+0

JSON.parseではなくeval – Smit

+0

を使用できますが、不要なときに余分なメソッドを呼び出すのは非効率的です。 – Edwin

関連する問題