php - 对多个表单使用多个提交按钮
问题描述
我正在制作将充满大量条目的页面,因此我正在考虑将其拆分为 3 页,并带有上一个和下一个按钮以进行提交。
// detecting post data
<?php
if(isset($_POST["Step1"])){
displayStep1();
}
else if(isset($_POST["Step2"])){
displayStep2();
}
else if(isset($_POST["Step3"])){
displayStep3();
}
// displaying thanks and dumping all variable
else if(isset($_POST["Thanks"])){
displayThanks();
}
else{
displayStep1();
}
//function to set value of input box with $_POST data
function setValue( $fieldName ){
if(isset($_POST[$fieldName])){
echo $_POST[$fieldName];
}
}
?>
<html>
<body>
<?php
// step 1 form
function displayStep1(){?>
<form method="POST">
<h1>This is step 1</h1>
<input type="hidden" name="txtm" values="<?php setvalue("txtm")?>">
<input type="hidden" name="txtl" values="<?php setvalue("txtl")?>">
Enter first name<br>
<input type="text" name="txtf" value="<?php setvalue("txtf")?>"/><br>
<input type="submit" name="Step2" value="Step2">
</form>
<?php }
//step 2 form
function displayStep2()
{?>
<form method="POST">
<h1>This is step 2</h1>
<input type="hidden" name="txtf" values="<?php setvalue("txtf")?>">
<input type="hidden" name="txtl" values="<?php setvalue("txtl")?>">
Enter middle name<br>
<input type="text" name="txtm" value="<?php setvalue("txtm")?>"><br>
<input type="submit" name="Step1" value="Step1">
<input type="submit" name="Step3" value="Step3">
</form>
<?php }
// step 3 form
function displayStep3()
{?>
<form method="POST">
<h1>This is step 3</h1>
<input type="hidden" name="txtf" values="<?php setvalue("txtf")?>">
<input type="hidden" name="txtm" values="<?php setvalue("txtm")?>">
Enter Last name<br>
<input type="text" name="txtl" value="<?php setvalue("txtl")?>"><br>
<input type="submit" name="Step2" value="Step2">
<input type="submit" name="Thanks" value="Thanks">
</form>
<?php }
// thanks and dump data
function displayThanks(){?>
<h1>Thanks for submitting information</h1><br>
<?php var_dump($_POST);
}?>
</body>
</html>
这段代码应该让我们填写第 1 步,然后在提交时,将进入第 2 步,但有 2 个按钮,第 1 步和第 3 步。但我的问题是,在第 1 步提交数据后,在第 2 步的页面,点击进入步骤1的按钮会回到步骤1,但输入框为空。理论上应该用步骤 1 中的 $_POST 数据填充。
在 vardump 中,只有最后一个要输入的“txtl”的数据。我哪里做错了?
解决方案
推荐阅读
- regex - VS 2017 查找并替换 ConfigurationManager.Appsettings["stringname"]
- scala - 如何使用猫效 IO 在 Play 应用程序中实现多个线程池
- php - php用回车换行写入csv文件
- python - 不明白这个 pytesseract 初始化错误
- python - 将列表与字典中的值进行比较
- c# - 使用额外属性更新 AspNetUser 将不起作用
- email - 使希伯来语文本/纯电子邮件右对齐
- unix - Unix - 打印不同的字段长度
- c# - 为什么我重新安装VS后无法在Visual Studio中加载这个解决方案?
- python - 没有继承的继承,是否有创建指向其他类变量的动态属性?