当我创建表单时 - 我会这样做:
<form name="form-name" method="post" action="?<?=$_SERVER['QUERY_STRING']?>">
[...some elements...]
<input type="submit" name="form-name" value="button">
</form>
现在我需要获取提交按钮的name=""
的值,而不是实际的value=""
。
在这种情况下:“form-name”。
这就是原因:
当我提交表格时;我将操作写入数据库 - 因此需要提交表单的名称。
我知道我可以使用表单名称隐藏字段。但是我想通过从提交按钮中提取名称来简化它,因为我需要在我创建的每个表单上添加一些其他隐藏的表单元素,以使我的模板系统工作。
没有javascript ...
答案 0 :(得分:1)
所以,假设您的HTML表单是这样的:
<form name="form-name" method="post" action="">
<input type="submit" name="form-name" value="button">
</form>
你希望得到name="form-name"
内的form-name
那么,在PHP方面,您可以将$_POST
全局视为关联数组,并从中提取密钥,如下所示:
<?php
if(isset($_POST)){
foreach($_POST as $key=>$each){
echo $key; // this will output "form-name"
}
}
答案 1 :(得分:0)
我可能想出一个解决我问题的方法......
以下是一个示例表单:
<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
}
}
}
这是我提出的解决方案 - 任何想法?