PHP根据变量值将表单提交到不同的页面
我想知道php网页,比如PHP根据变量值将表单提交到不同的页面,php,forms,Php,Forms,我想知道php网页,比如 <form method = "post" action = ?> Age: <input type = "text" name="age"> Submit: <input type="submit"> </form> 年龄: 提交: 例如,如果输入年龄大于18岁,则转到页面:a.php;else goto b.php 我们如何在当前页面或在下一转发页面实现这一点 更具体地说 如果我们想在当前页面中执行此
<form method = "post" action = ?>
Age: <input type = "text" name="age">
Submit: <input type="submit">
</form>
年龄:
提交:
例如,如果输入年龄大于18岁,则转到页面:a.php;else goto b.php
我们如何在当前页面或在下一转发页面实现这一点
更具体地说
action=“c.php”
并在c.php页面中进行判断。如果是这样,如何在c.php页面中做到这一点
顺便问一下,哪种方式是常用的方式
谢谢,
Eve
年龄:
提交:
始终提交到同一页面的最佳方式
<form method = "post" action = 'c.php'>
Age: <input type = "text" name="age">
Submit: <input type="submit">
</form>
您可以使用jQuery更改操作属性,如下所示:
$( formSelector ).onsubmit(function() {
if (parseInt($( inputSelector )).val() > 18) {
$( formSelector ).attr('action', 'over18.php');
} else {
$( formSelector ).attr('action', 'under18.php');
}
}
但最好是这样:
form action="switchValue.php"
在那个档案里
if ((int)$_POST['age'] > 18) {
include("over18.php");
} else {
include("under18.php");
}
这应该是你要找的
Page b.php
<?
if ($_GET['age'] > 18)
{
//do some thing
} else {
//do some thing
}
?>
<form action="b.php">
Age: <input type = "text" name="age">
Submit: <input type="submit">
</form>
Page b.php
年龄:
提交:
将操作
属性留空,将表单提交给自己:
<?php
if(isset($_POST['formSubmit'])) { //if form was submitted
$age = $_POST['age'];
if ($age > 18)
{
header('Location: a.php');
} else {
header('Location: b.php');
}
}
?>
<form method = "post" action"">
Age: <input type = "text" name="age">
Submit: <input type="submit" name="formSubmit">
</form>
年龄:
提交:
您很可能希望在当前页面和目标页面中执行此操作
客户端检查
在当前页面中,可以将javascript与库一起使用,如。将onclick事件添加到提交输入中,调用如下函数:
<script type="text/javascript">
$("input[type=submit]").click(function(event) {
event.preventDefault(); // avoid normal action, actually not needed but useful sometimes
if (parseInt($('input[type=text]').val()) < 18)
$('form').attr('action', 'b.php');
else $('form').attr('action', 'a.php');
$('form').submit(); // due to the previous event.preventDefault()
});
</script>
$(“输入[type=submit]”。单击(函数(事件){
event.preventDefault();//避免正常操作,实际上不需要,但有时很有用
if(parseInt($('input[type=text]').val())<18)
$('form').attr('action','b.php');
else$('form').attr('action','a.php');
$('form').submit();//由于上一个事件。preventDefault()
});
这应该能奏效。我建议您为输入提供ID,并相应地更改上述jQuery选择器
服务器端检查
无论如何,人们可以禁用或手动修改javascript,这样您甚至可以在服务器端添加检查。例如,在a.php中,您可以添加:
if ((int)$_REQUEST['age'] < 18)
header('Location: b.php?age='.$_REQUEST['age']);
if((int)$\u请求['age']<18)
标题('Location:b.php?age='.$\u请求['age']);
或者更好。转到同一页,并根据年龄值进行处理有什么问题吗?建议您在第二页上检查情况,然后执行所需的任何操作。他将如何获得年龄,提交前?您在哪里将用户重定向到页面a或b@amalmurali如果没有操作属性,则表单将发布到自身。HTML需要操作属性才能有效。然而,它可以是空的,所以表单将发布到它自己。另外,
但是服务器会给出一个错误:注意:未定义索引:age@orangepill答案对您有帮助吗?
<script type="text/javascript">
$("input[type=submit]").click(function(event) {
event.preventDefault(); // avoid normal action, actually not needed but useful sometimes
if (parseInt($('input[type=text]').val()) < 18)
$('form').attr('action', 'b.php');
else $('form').attr('action', 'a.php');
$('form').submit(); // due to the previous event.preventDefault()
});
</script>
if ((int)$_REQUEST['age'] < 18)
header('Location: b.php?age='.$_REQUEST['age']);