2012-03-12 50 views
0

我想讀一個輸入數組的值,並將它們傳遞給我的後端PHP,但我沒能得到這個工作。 我有以下的html:通過發送POST輸入數組值到PHP

<input name='field[]' class='myclass' value='test1'> 
<input name='field[]' class='myclass' value='test2'> 
<input name='field[]' class='myclass' value='test3'> 

<input id='post_this_val' type='button' value='Post'> 

我想讀的jQuery和POST值,這些值到我的後端PHP,這將隨後處理結果。這是我做的:

$('#post_this_val').live('click', function() { 
    var inpVal = $('input.myclass').map(function(i, el) { 
          return el.value; 
        }); 
    $.post('/my/php/function', {data: inpVal}); 
}); 

上述職位不working-我的PHP函數甚至不獲取調用和頁面重新加載簡單的點擊發布按鈕。建議請。得到表單值

+0

你錯過了「return false;」 – 2012-03-12 07:15:35

回答

4

最簡單的方法是在一種形式來包裝這些輸入,綁定事件提交,並使用.serialize()方法。使用此方法的優點是,如果您的表單包含輸入類型文本並提交,則無論用戶是使用Enter提交還是點擊提交按鈕,處理程序仍將被調用。

HTML:

<form id="myForm"> 
    <input name='field[]' class='myclass' value='test1'> 
    <input name='field[]' class='myclass' value='test2'> 
    <input name='field[]' class='myclass' value='test3'> 
    <input id='post_this_val' type='button' value='Post'> 
</form> 

JS:

$('#myForm').live('submit', function(e) { 
    $.post('/my/php/function', $(this).serialize()); 
    e.preventDefault(); 
    return false; 
}); 
+0

工作,謝謝! – Ninja 2012-03-12 07:29:02

0

只需添加到安德烈亞斯很好的答案,有時,複雜的問題通過簡單的錯誤造成的。

一旦你檢查語法和一切,我會建議你安裝Firebug檢查究竟是什麼回事。

在螢火蟲的淨面板,你可以看到,如果職位是成功的,如果有一個迴應。

在這種情況下,錯誤可能是由URL拼寫錯誤到拼錯變量造成的。

螢火蟲將有助於識別這些錯誤,不管原因。

希望這會有所幫助!

祝你好運!