2014-01-13 81 views
4

在使用HTML表單和jQuery AJAX時,我陷入了一個可能非常普遍的問題,但是我還沒有找到適合我的具體需求的適當解決方案...我是使用Codeigniter框架。 下面是具體的情況:通過jQuery將HTML數組傳遞給PHP AJAX

HTML - 以與陣列形式,地址[],如:

<form id="addressForm" class="form-horizontal" method="post" action="">  
<div class="form-group"> 
    <div class="col-lg-9"> 
     <label class="control-label" for="address[name]">Full name</label> 
     <input name="address[name]" type="text" placeholder="" class="form-control"> 
    </div> 
    <div class="col-lg-3"> 
     <label class="control-label" for="address[email]">Email</label> 
     <input name="address[email]" type="text" placeholder="" class="form-control"> 
    </div> 
    </div> 
... and so on 

的jQuery - AJAX調用傳遞兩個參數到PHP:一個ID和序列化的地址陣列。 ..

$.ajax({ 
    type: "post", 
    url: "ajax/updateClientAddress", 
    dataType: "json", 
    data: { 
    id: $('select[name="addresses"]').val(), 
     address: $("[name^='address[']").serialize(), 
    } 
... 

PHP - 數據處理及客戶端更新

... 
$addressID = $this -> input -> post('id'); // Correctly received 
$addressData = $this -> input -> post('address'); 
... 

我想知道什麼是丟失或錯誤的每個部分來訪問數據在PHP這樣的:提前

$client -> name = $addressData['name']; 

感謝。

回答

3

您需要將id名稱/值對添加到地址參數字符串中,並將完成的參數字符串作爲數據傳遞。

data: $.param({id: $('select[name="addresses"]').val()}) + "&" + $("[name^='address[']").serialize(), 
+0

這正是我所需要的。非常感謝你。 – andcl