2017-08-14 1 views
0

検索条件を保存するための要件フォームビジネスがあり、ユーザーは保存された検索データを使用して検索を再開できます。 JSONオブジェクトとしてデータベースに検索を保存しました。問題は、ユーザーがSelect - Dropdownを使用して既に保存されている検索を選択した場合、フォームは検索で保存されたすべての選択を事前に設定する必要があることです。 populate関数内のキー値を警告しようとすると、キーは常に0として表示され、JSONオブジェクト全体の値として表示されます。私はここで何が欠けていますか?JQUERY - JSON結果selectを選択したときにフォームフィールドをあらかじめ入力するように割り当てます。

データベースから返されたJSONリクエストのサンプルは{"affected": "" 153 "、" 503 "、" 537 "、" suspect ":[" 101 "、" 108 "]" state " []、 "zip_code":[]、 "analysis_date_max":[""、 ""]、 "last_modified_date_min":[""、 ""]

ここに私の既存のコードはあります: // START OF問題コード

function populate(frm, data) { 
     var obj = $.parseJSON(data); 
     //alert (data); 
     //alert (frm); 

     alert (obj); 
     $.each(obj, function(key, value){ 
      alert(key + ' is ' + value); 
     $('[name='+key+']', frm).val(value); 

     }); 
} 

// END OF PROBLEM CODE 
    $('#search_dataselect').on('change', function() 
    { 
     getSearchData(this.value); 

    }); 

    function getSearchData(search_id) { 

    if (!isNaN(parseInt(search_id))) { 

     $.ajax({ 
      type: "GET", 
      url: "/index.cgi?p=json&t=SavedSearch&search_id="+search_id, 
      success: function(result){ 
      var data = result; 
      populate('#formSearch',data); 

      }, 
     }); 
    } 
      return false; 
    } 
+0

検索ページ上のコントロールのほとんどはMULTISELCTドロップダウンがあります – Kris1511

答えて

0

データがシリアル化されていないようです。これを試してみてください :

success: function(result) { 

var data = JSON.stringify(result); 
populate('#formSearch', data); 

} 

例をJSON.stringifyを使用するための()

https://jsfiddle.net/3u6mrft1/

関連する問題