2014-04-10 40 views
0

使用php,我動態地創建一個表單,其中包含可變數目的「select」。如何在php中獲取<form>元素的數組?

當用戶完成他的選擇後,他點擊一個啓動另一個php的按鈕。

我現在想要瀏覽所有表單元素,但不知道如何獲取帶有各自表單名稱的表單元素數組。

我知道如何獲取給定select的值,當我有它的名字時,但由於每次的形式選擇元素都不同,我不能直接使用名稱,但需要表單元素的數組。

+3

你可以添加代碼的例子嗎? – ChoiZ

回答

0

因此,正如我所理解的問題:表格是動態創建的(使用動態名稱),因此您不知道什麼是POST'd以及處理器中的其他選項。我建議使用javascript來解決這個問題 - 在表單中添加一個onSubmit="saveForm();",然後在該函數saveForm中,您必須獲取所有表單元素並將其放入PHP可以解釋的某種格式。僞代碼:

function saveForm(){ 
    var outputString="["; 
    var theInputs=document.querySelectorAll("input, select"); 
    for (var x=0; x<theInputs.length; x++){ 
     outputString+="\""+theInputs.name+"\", "; 
    } 
    outputString=outputString.substring(0,outputString.length-2)+"]"; 
    var hiddenInput=document.createElement("input"); 
    hiddenInput.name="formNames"; 
    hiddenInput.value=outputString; 
    document.body.appendChild(hiddenInput); 
} 

這樣一來,可變將在$_POST['formNames']被設置,這將是等同於包含表單元素的所有名稱的數組的字符串表示。您可以循環訪問該數組以從其中的每一個獲取$ _POST數據。

0

我找到了解決方案。我可以這樣做:那麼

foreach($_POST as $eid){ 

和$ EID將成爲每一個元素我有我的形式

相關問題