我的侧边栏中包含一个计算器表单,位于登录表单下方。当用户提交登录表单时,该操作会触发:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {}
我的另一种形式的声明。我尝试添加:
if (isset($varOne)) {}
声明,使用:
$varOne = $_POST['varOne'];
来自计算器脚本,但这也不起作用。如果提交了登录表单,则计算器脚本将继续运行。我们该如何制止这种疯狂?!
答案 0 :(得分:3)
你可以将两者结合起来:
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['varOne'])) {
// calculator button was pressed
}
或:
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_POST['varOne'])) {
// calculator button was pressed
} else {
// probably a login post
}
}
答案 1 :(得分:1)
执行此操作的可能方法是通过<form>
标记中的get方法传递额外参数。
<form action="somefile.php?formname=login" method="post">
</form>
对于你的计算器表格,你可以把
<form action="somefile.php?formname=calculator" method="post">
</form>
最后,在表单处理脚本上,您可以检查
<?php
if(isset($_GET['formname'])){
if($_GET['formname']=='login'){
//get login form fields
$someVar=$_POST['fieldname']; //etc etc
}
if($_GET['formname']=='calculator'){
//get calculator form fields
$someVar=$_POST['fieldname']; //etc etc
}
}
?>