基本上,我有一个动态创建提交按钮的网站。 例如:
input type="submit" name="test1"
input type="submit" name="test2"
依旧......
我如何找出按下了哪个按钮(test1,test2,test3等)?
我知道你可以使用隐藏值创建多个表单,但我宁愿只有一个包含多个提交的巨型表单。
编辑:按钮是动态创建的,所以我不知道会有多少按钮。它可能是test1-test55所以我需要创建一些能够自动查看所有可能性的东西。
答案 0 :(得分:1)
您可以使用if或switch语句测试哪个提交是这样的:
if(isset($_POST['test1'])){
//form test1 submitted
}
else{
if(isset($_POST['test2'])){
//form test2 submitted
}
}
您可以像这样检查所有$ _POST键
foreach($_POST as $key => $value){
if(substr($key,0,4) == 'test'){
$form_submitted = substr($key,5); //retrieve number of submitted test
}
}
答案 1 :(得分:1)
如果你要提交一个这样的简单表格:
<form>
<input type="text" id="icebear" value="tickle" />
<input type="submit" id="doit" value="SUBMIT" />
</form>
接收页面将获得两个变量:
如果您不知道提交按钮的名称可能是什么,请记住$_POST
是一个数组。你可以使用foreach。您可以使用公共前缀过滤掉提交按钮。
foreach( $_POST as $key => $value ) {
echo "{$key} was submitted with value {$value}<br/>";
}
答案 2 :(得分:0)
<form action ="" method="post">
<input type="submit" name="test1" />
<input type="submit" name="test2" />
<input type="submit" name="test3" />
</form>
<?php
if(isset($_POST['test1'])){
echo 'first button is pressed';
}elseif(isset($_POST['test2'])){
echo 'Second button is pressed';
}
elseif(isset($_POST['test3'])){
echo 'Third button is pressed';
}
?>
答案 3 :(得分:0)
将$_POST
数组存储在另一个变量中,反转数组,然后使用key()
获取第一个键(即提交按钮):
以下内容应该有效:
<?php
if(!empty($_POST)) {
$array = $_POST;
$array = array_reverse($array);
$key = key($array); // get first key
echo $key;
}
?>
<form action="" method="post">
<input type="text" name="foo" />
<input type="submit" name="submit1" />
<input type="submit" name="submit2" />
<input type="submit" name="submit3" />
</form>
例如,如果您提交一个值并单击任何提交按钮,它应该回显所单击的提交按钮的name
属性。无论表单中的提交按钮数量如何,上述解决方案都将起作用。
答案 4 :(得分:0)
如果您可以更改按钮生成代码,则可以选择一些选项。
如果您的按钮是连续生成的(1,2,3,...),您可以将PHP的神奇力量用作documented here (scroll down to "How do I get all the results from a select multiple HTML tag?"):
for ($i = 0; $i < MAX; $i++){
echo '<input type="submit" name="test[]"'." more button code />";
}
如果您的按钮编号来自数组,则可以执行以下操作:
for ($arr as $i){
echo '<input type="submit" name="test['.$i.']"'." more button code />";
}
在上述任一方法中,您都可以访问数组中的表单元素。由于这些是按钮,并且只有其中一个可以负责,因此您可以使用this clever method来获取发布的值。
$the_posted_button_value = reset($_POST['test']);