2表单提交后如何在php中保留变量

格拉森尼克

我的 php 代码有问题。我有 2 个 html 表单,我需要在用户提交每个表单后在输入中显示输入数据。我有一个问题,用户提交表单 1 的数据正确显示在表单中,但是当用户提交表单 2 时,表单 1 中的数据被删除,我希望两个表单都显示输入数据。下面是用于演示的简化代码。

<?php
$name1 = "";
$email1 = "";
$name2 = "";
$email2 = "";
?>

<?php
if (isset($_POST['submit1'])) {
$name1 = $_POST['name1'];
$email1 = $_POST['email1'];
}

if (isset($_POST['submit2'])) {
$name2 = $_POST['name2'];
$email2 = $_POST['email2'];
}
?>

<form action="index.php" method="post">
Name: <input type="text" name="name1" value="<?php echo $name1; ?>"><br>
E-mail: <input type="text" name="email1" value="<?php echo $email1; ?>"><br>
<input type="submit" value="send" name="submit1">
</form>
<form action="index.php" method="post">
Name: <input type="text" name="name2" value="<?php echo $name2; ?>"><br>
E-mail: <input type="text" name="email2" value="<?php echo $email2; ?>"><br>
<input type="submit" value="send" name="submit2">
</form>
瑞狗

您可以使用 PHP 会话。提交页面上的表单后,您可以将 $_POST 变量存储在 $_SESSION 中,然后只存储 $_SESSION 变量来填写表单。请参见下面的代码:

<?php
    session_start(); //start the session
    if(isset($_POST)){ //check to see if a form has been submitted
        // merge the $_SESSION & $_POST arrays, 
        // this will overwrite session variables with new post variables but keep old post variables that haven't been submitted
        $_SESSION = array_merge($_SESSION,$_POST); 
    }
 

    $name1 = "";
    $email1 = "";
    $name2 = "";
    $email2 = "";
?>

<?php
if (isset($_SESSION['submit1'])) { //uses $_SESSION instead of $_POST
    $name1 = $_SESSION['name1'];
    $email1 = $_SESSION['email1'];
}

if (isset($_SESSION['submit2'])) { //uses $_SESSION instead of $_POST
    $name2 = $_SESSION['name2'];
    $email2 = $_SESSION['email2'];
}
?>

<form action="index.php" method="post">
    Name: <input type="text" name="name1" value="<?php echo $name1; ?>"><br>
    E-mail: <input type="text" name="email1" value="<?php echo $email1; ?>"><br>
    <input type="submit" value="send" name="submit1">
</form>

<form action="index.php" method="post">
    Name: <input type="text" name="name2" value="<?php echo $name2; ?>"><br>
    E-mail: <input type="text" name="email2" value="<?php echo $email2; ?>"><br>
    <input type="submit" value="send" name="submit2">
</form>

如果您有任何问题,请告诉我。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在laravel 5.2中提交表单后如何在文本字段中保留值

PHP会话变量在表单提交后不保留

(Django) 如何在表单提交后保留输入值

JS坐标-> PHP脚本-如何在PHP中保留变量?

提交表单时,如何在下拉菜单中保留所选值?

如何在变量中保留'/'字符?

如何在Vue中的表单提交中保存更改后的道具数据?

在PHP中进行表单验证后,如何从下拉列表中保留选定的年份选项

PHP如何在重新提交表单时阻止变量被重写

更改用户后如何在脚本中保留Shell变量

PHP-表单提交后如何保留文本框数组的值?

如何在 GET 表单中保留输入字段值的问号?

卸载表单后如何在Redux表单中保持状态

回显php变量时如何在文本输入字段中保留空格

如何在 Django 中保存没有提交按钮的表单

在Laravel 5.4中重新加载视图后,如何在表单中保留所有过滤器?

表单提交后如何在html表单下方显示成功消息,由不同的php文件处理

PHP,提交后如何清除此表单?

排序后如何在C中保留未排序的数组

提交GET表单后,如何在结果url参数字符串中插入变量?

使用Spring LocaleChangeInterceptor时如何在URL中保留变量

如何在su-中保留环境变量?

如何在for循环中保留变量的位数

如何在伴侣对象中保留内部变量

如何在jersey Web服务中保留类变量的值

如何在BASH的FTP命令中保留变量间距?

如何在logit模型中保留或删除预测变量?

如何在bash中保留变量的先前值

如何在php类中提交表单