我有一个清晰的按钮,我想绑定到一些PHP编码。如何检测是否按下了清除按钮。当用户按清除时,我将更新sql表以清除条目。但首先我需要知道何时按下按钮。
<input name="Reset1" type="reset" value="clear" />
答案 0 :(得分:21)
您使用按钮名称检查表单中的post
或get
数据:
<form action='' method='post'>
<button type='submit' name='reset'>Clear</button>
<button type='submit' name='submit'>Submit</button>
</form>
PHP(提交后):
if(isset($_POST['reset'])) { /* ...clear and reset stuff... */ }
else if(isset($_POST['submit']) { /* ...submit stuff... */ }
或者,您有两个具有相同名称的按钮,它们都提交您的表单,并if/else
他们的值:
<form action='' method='post'>
<button name='submit' value='0'>Clear</button>
<button name='submit' value='1'>Submit</button>
<button name='submit' value='2'>Something Else</button>
</form>
PHP(提交后):
if($_POST['submit']==0) { /* ...clear and reset stuff... */ }
else if($_POST['submit']==1) { /* ...submit stuff... */ }
else if($_POST['submit']==2) { /* ...do something else... */ }
答案 1 :(得分:3)
解决方案来自:http://websistent.com/multiple-submit-buttons-in-php/
HTML:
<input type="submit" name="btn_submit" value="Button 1" />
<input type="submit" name="btn_submit" value="Button 2" />
<input type="submit" name="btn_submit" value="Button 3" />
PHP:
<?php
if($_REQUEST['btn_submit']=="Button 1")
{
print "You pressed Button 1";
}
else if($_REQUEST['btn_submit']=="Button 2")
{
print "You pressed Button 2";
}
else if($_REQUEST['btn_submit']=="Button 3")
{
print "You pressed Button 3";
}
?>
答案 2 :(得分:1)
将项目连接为您附加到触发AJAX请求的Javascript片段的按钮,或者使用提交输入。 (根据提交的值确定表单是已提交还是重置)
答案 3 :(得分:0)
您可以将ajax事件绑定到被单击的事件。如果您正在使用jQuery,则可以将ajax()函数绑定到其click事件。 ajax函数允许轻松传递变量,错误检查等。
你将ajax调用一个php文件,我们称之为reset_ajax.php,这将进行查询。
另一个选项是跟踪被点击的重置按钮,其中隐藏的输入在每次单击时都会更新,然后您可以在提交表单时在后端进行查询。
由您决定使用哪种方法。即使他们没有提交表格,第一个也有工作的优势。
答案 4 :(得分:0)
<form action="" method="post" >
<input type="submit" name="btn_submit" value="Button 1" />
<input type="submit" name="btn_submit" value="Button 2" />
<input type="submit" name="btn_submit" value="Button 3" />
<form>
$ _ REQUEST中的变量是通过GET,POST和COOKIE提供给脚本的,您可以使用$ _POST代替,因为表单的方法是POST
<?php
if (isset($_REQUEST['btn_submit'])) {
switch ($_REQUEST['btn_submit']) {
case "Button 1":
echo "You pressed Button 1";
break;
case "Button 2":
print "You pressed Button 2";
break;
case "Button 3":
print "You pressed Button 3";
break;
}
}
?>
答案 5 :(得分:0)
令人惊讶的是,没有涵盖formaction
属性。您可以像这样使用它
<form method="post" action="/action/project/edit">
...
<button type="submit">edit</button>
<button type="submit" formaction="/action/project/delete">delete</button>
</form>
当然,这不使用javascript并且具有良好的浏览器支持。此路由(无双关语)的附加好处是不需要在服务器上附加if / then语句,因为同一路由不会用于两种不同的事情
参考 https://css-tricks.com/separate-form-submit-buttons-go-different-urls/