我可以连续提交并保持在同一页面上吗?
我需要一个表单来填充,然后是第二个,然后是第三个,依此类推......并且必须根据答案触发不同的函数和表单。例如:
<form method="post">
Sex?<input type="text" name="sex">
<input type="submit" name ="submit_sex" value="Submit">
</form>
<?php
if(isset($_POST['submit_sex'])){
echo("Fist submit done");
?>
<form method="post">
Age?<input type="text" name="age">
<input type="submit" name ="submit_age" value="Submit">
</form>
<?php
if(isset($_POST['submit_age'])){
echo("Second submit done");
}
}
?>
答案 0 :(得分:1)
是的,你可以,但如果使用Ajax,它会看起来更漂亮/更方便用户使用。但是,在您的情况下,使用条件语句来检测要显示的表单会更有效,并且为了绝对最小输入验证,您至少应检查空值:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<?php
if(isset($_POST['third_question']) && $_POST['third_question'] != "") {
// store value of $_POST['third_question'] in a cookie
// Last question answered, do what you need to next with all the values
} elseif(isset($_POST['second_question']) && $_POST['second_question'] != "") {
// store value of $_POST['second_question'] in a cookie
Third Question? <input type='text' name='third_question' />
} elseif(isset($_POST['first_question']) && $_POST['first_question'] != "") {
// store value of $_POST['first_question'] in a cookie, then display next quesion
Second Question? <input type='text' name='second_question' />
} else {
First Question? <input type='text' name='first_question' />
}
?>
<input type="submit" name="submit" value="Submit" />
</form>
答案 1 :(得分:0)
我认为在浏览器端执行此操作会更有意义。你可以这样做:
<form method="post">
<div id="sexInput">
Sex?<input type="text" name="sex" />
<input type="button" name="submit_sex" value="Submit" onClick="showAge()" />
</div>
<div id="ageInput" style="display:none;">
Age?<input type="text" name="age" />
<input type="submit" value="Submit" />
</div>
</form>
并有一个隐藏sexInput div的函数showAge()
并显示ageInput div。通过这种方式,它实际上是一个表单,最后一次全部提交,但一次只向用户显示一个部分。