2016-08-04 7 views
0

私はデータベースからデータを読み込むために以下を使用しています。JQuery - 解析されたAJAXデータを既存のフィールドに返す

$.ajax({ 
    url: 'loader.php', 
    success: function(data) { 
    console.log(data) 
    } 
}); 

これは戻っている:戻さ[{"name":"Bob Green","ID":"1234"}]

データはPHPによって作成され、フォーマットは、単に手動で作成され、その後、バックecho'd。私はこれがどのように行われているかを変えることができます。

私はdataは、私は、既存のフォームを更新したい戻ってきたら。フォームフィールド名は、返されたデータのキーと一致します。ほとんどがテキストフィールドですが、いくつかのドロップダウンリストとチェックボックスがあります。

私は別の質問で見つかった以下のことを試してみましたが、それは動作しませんでした。

function populate(frm, data) { 
    $.each(data, function(key, value){ 
    var $ctrl = $('[name='+key+']', frm); 
    switch($ctrl.attr("type")) 
    { 
     case "text" : 
     case "hidden": 
     $ctrl.val(value); 
     break; 
     case "radio" : case "checkbox": 
     $ctrl.each(function(){ 
      if($(this).attr('value') == value) { $(this).attr("checked",value); } }); 
     break; 
     default: 
     $ctrl.val(value); 
    } 
    }); 
} 

Iコンソールがkey & valueをログに記録するとき、それはindiviual文字としてデータを示したがないname:Bob Green & ID:1234

誰かが正しい方向に私を指すことができます。

おかげ

答えて

1

それはあなたのphpコードが結果はJSONで処理するために、あなたのブラウザに指示、関連するヘッダなしにデータを文字列として返すことが可能です。

$data = /* Some variable that contains your data */; 
header('Content-Type: application/json'); 
echo json_encode($data); 

別のオプションは、JSONとして要求の結果を処理するために、あなたのAJAX要求を伝えることです:

$.ajax({ 
    url: 'loader.php', 
    dataType: 'json', // This way jquery will try to handle the returned data as json object 
    success: function(data) { 
     console.log(data); 
     console.log(data); 
    } 
}); 

注これらが同じにならないように、あなたが使用することができます行うには

:助け、これが今取り組んでいる

console.log('[{"name":"Bob Green","ID":"1234"}]') 
    [{"name":"Bob Green","ID":"1234"}] 

console.log([{"name":"Bob Green","ID":"1234"}]) 
    [Object]: 
     ID: "1234" 
     name: "Bob Green" 
+0

感謝:) – Rocket

関連する問題