2013-05-28 9 views
0

我已經通讀了很多問題,並且查找了幾個小時,但仍然無法找到我確切需要的解決方案。PHP - HTML - 獲取多個複選框的值,但不會使其成爲數組

<form method="POST"> 
    <input type="checkbox" name="fruit" value="0" />No Preference 
    <input type="checkbox" name="fruit" value="1" />Apple 
    <input type="checkbox" name="fruit" value="2" />Orange 
    <input type="checkbox" name="fruit" value="3" />Banana 
</form> 

的print_r($ _ POST);

我已經做了驗證複選框的值爲0到1,2,3,所以他們會反過來,我做了它使用循環javascript搜索元素名稱。問題是,我必須使用元素名稱而不更改它成爲數組名稱。 (例如Fruit => Fruit [])。 所以我需要使用這個元素名稱來檢索客戶輸入的所有檢查信息。我已經看到這可以在ASP中完成,但我不知道他們如何做,因爲它很久以前已經。

我的問題是,可以任何一個人物如何做到這一點,而不需要將元素名稱改爲數組格式(例如Fruit => Fruit [])? T.T

任何幫助將不勝感激。謝謝..

+1

它獨立於任何編程語言,因爲它是HTML。你能告訴我們爲什麼你只想這樣嗎? – Rikesh

+1

使用數組有什麼問題?因爲當你提交表單時,你的$ _POST ['fruit']只能有一個值,除非它是一個數組。 – sven

+0

這可能有所幫助:http://stackoverflow.com/questions/4997252/get-post-from-multiple-checkboxes – Pete

回答

-3

我使用這一行改變了驗證:

var GenBox = eval("document.forms['SubmitSearchAll']['" + oCheckBox+"[]']"); 

它幫助我很多。現在解決了。

感謝大家的貢獻。

0

正如你已經想到的那樣,當你多次提交同一個名字時,最新的一個會覆蓋前者。一個解決辦法是建立一個隱藏字段

<input type="hidden" value="" name="foobar_as_array"> 

和使用jQuery或純JS來Concat的你的價值觀到該字段上提交

<form ... onSubmit=$('#foobar_as_array').value(...concatenate them...);">