0

我在 index.php 中有以下代码:

<div class="done">
        <b>Thank you<?php
             echo $_SESSION['session_vname']." "; 
             echo $_SESSION['session_lname']."! </b><br><br>Email: ";
             echo $_SESSION['session_email']."<br> Status: ";
             echo $_SESSION['session_status']."<br>";

        ?>
    </div>

<div class="form">
        <form method="post" action="process.php">
            <div class="element">
                <label>First Name</label>
                <input type="text" name="vname" class="text" />
            </div>
            <div class="element">
                <label>Last Name</label>
                <input type="text" name="lname" class="text" />
            </div>
            <div class="element">
                <label>Email</label>
                <input type="text" name="email" class="text" />
            </div>
            <div class="element">
                <label>Status</label>
                <input type="text" name="status" class="text" />
            </div>
            <div class="element">
                <input type="submit" id="submit"/>
                <div class="loading"></div>
            </div>
        </form>
    </div>

我使用 ajax 提交执行表单,因此 index.php 不会刷新。完成后会得到一个fadeOut 和一个fadeIn。

这工作正常,除了以下部分:

当显示div class="form"时,它显示上次提交之前表单中的会话变量。

例子:

第一个输入: session_vname = testa

第一个输出 $_SESSION['session_vname'] = none

第二个输入: session_vname = 溢出

第二个输出 $_SESSION['session_vname'] = testa

所以最后的问题是:

如何在表单提交后强制更新会话变量 index.php 也没有重新加载?

4

2 回答 2

1

在页面显示给查看器之前,PHP 代码在服务器端执行。这意味着如果您不想刷新整个页面,则需要使用 JavaScript 更新静态元素。

于 2012-11-20T16:58:19.910 回答
0

您不能使用 javascript 更新服务器端 php 会话,您应该使用 cookie 来实现该类型的功能

于 2012-11-20T17:01:35.530 回答