2015-12-15 73 views
3

我想填充表單字段使用AJAX調用PHP腳本返回JSON數據。我試過兩種方法,但都沒有工作,我敢肯定我完全錯過了一些東西......我從來沒有使用過AJAX,而我發現它很混亂。使用AJAX調用和JSON數據填充表單

$("#loadDefault").click(function() 
    {  

    $.getJSON('formdata.php', {act : 'default'}, 
    function(data) { 
     $.each(data, function(key, value) { 
     $('[name='+key+']', frm).val(value); 
     }) 
    }); 
     /* function populate(frm, data) { 
      $.each(data, function(key, value) { 
       $('[name='+key+']', frm).val(value); 
      }); 
     } 

     populate('#myForm', $.parseJSON(data)); */ 



    return false; 
    }); 

下面是HTML格式以供參考:__________________________________________________

<form id="myForm"> 

Name: <input type="text" id="name" name="name"> <br> 

Postal Code: <input type="text" id="postal" name="postal"> <br> 

Phone Number: <input type="text" id="phone" name="phone"> <br> 

Address: <input type="text" id="address" name="address"> <br> 

<input type="submit"> 

</form> 

<a id="loadDefault" href="">Load Default Data</a> 
<br> 

注:我沒有找人來爲我寫的解決方案,我只是希望能獲得一些指導或一些想法至於我失蹤或做錯了。謝謝!

+0

您可以添加json響應嗎? – roullie

回答

0
  1. 您的frm未定義。
  2. 另外frm不需要在$('[name='+key+']', frm).val(value);因爲你只需要更新字段值。

我知道你不想讓我寫解決方案,但這只是你的方法是正確的。這只是你錯過的小細節。

基本上,如果你的回覆是{'name': 'foo', 'postal': 'bar'},js應該可以工作。

0

也許你可以看看這個視圖引擎:https://jocapc.github.io/jquery-view-engine/它使您可以從AJAX響應中直接加載JSON對象到表單中,如果對象的屬性匹配表單的元素。您的代碼將如下所示:

$("#loadDefault").click(function() 
    {  
    $.getJSON('formdata.php', {act : 'default', dataType: 'json'}, 
    function(data) { 
     $('#myForm').view(data); 
    }); 
    return false; 
    });