我可能已經想出了一個解決我的問題...
這裏有一個例子形式:
<form name="vehicle-vinNr" method="post" action="?<?=$_SERVER['QUERY_STRING']?>">
<input type="hidden" name="hello" value="world" readonly>
<input type="text" name="element">
<input type="submit" name="vehicle-vinNr" value="send">
</form>
首先,我需要提取並放置元素名稱到一個新的數組:
<?php
if ($_POST){
foreach($_POST as $_FORM_ELEMENT_name => $_FORM_ELEMENT_value){
$_FORM_ELEMENT_names[] = $_FORM_ELEMENT_name;
}
}
?>
在這種情況下,陣列現在包含:
hello
element
vehicle-vinNr
如果提交按鈕是,始終是,在表格的最後一個元素 - 這會工作:
$_FORM_name = end($_FORM_ELEMENT_names); // vehicle-vinNr
但有時提交按鈕是不是最後一個元素,所以我需要做出改變:
如果我總是submit_
開始提交按鈕的名稱 - 例如, submit__vehicle-vinNr
或多個提交按鈕用於不同的操作,如submit_update__vehicle-vinNr
/submit_delete_vehicle-vinNr
我可以做到這一點:
if ($_POST){
foreach($_POST as $_FORM_ELEMENT_name => $_FORM_ELEMENT_value){
if(strstr($_FORM_ELEMENT_name,'submit_')){
$_FORM_ELEMENT_submit_name = explode('__',$_FORM_ELEMENT_name);
$_FORM_name = $_FORM_ELEMENT_submit_name[1]; // vehicle-vinNr
}
}
}
這是我想出了一個解決方案 - 有什麼想法?
我不知道,如果你是在暗示將使它更簡單的...爲什麼不總是有'NAME =「表單名稱」'提交,然後使用值屬性存儲的名稱? –
提交按鈕的值可以是「保存」,「刪除」,「確定」,「取消激活」,「激活」或其他一般名稱。並且可能會有多個表單使用相同的按鈕名稱(值) - 這樣就不會給我提供足夠的信息... – ThomasK