【发布时间】:2011-05-27 23:22:29
【问题描述】:
我正在使用 Ajax 创建一个多步骤表单,并希望根据表单字段的值更改显示的文本。我认为这样做的一个好方法是使用会话变量。如何告诉会话使用新字段值进行更新?目前,会话似乎只存储初始值,但没有对其进行任何更新。因此,如果用户输入“John”作为名字,然后返回并将其更改为“Frank”,则“John”就是存储的名称。
if (!isset($_SESSION)) {
session_start();
$_SESSION['formStarted'] = true;
$_SESSION['timestamp'] = date("M d Y H:i:s");
$_SESSION[$key] = $value;
<p>Your name begins with the letter <?php if ($_SESSION['name'] =='Frank')
{echo 'F';}?><p>
jQuery:
$("#form").validate({
//...
submitHandler: function(form) {
//...
$(form).ajaxSubmit({
type: "POST",
data: {
name : $('#name').val(),
//...
},
dataType: 'json',
url: '../ajaxtest.php',
error: function() {alert("There was an error processing this page.");},
success:
function(data) {
$('#output1').html(data.message.join(' ')).show(500);
$('#ouput1').append(data);
//...
ajaxtest.php:
session_start();
$expected = array(
'name'=>'string',
//...
);
//...
$return['message']=array();
if(!empty($_POST['name'])){
$return['message'][] = '' . htmlentities($_POST['name'], ENT_QUOTES, 'UTF-8');
}
//...
echo json_encode($return);
【问题讨论】:
-
我没有看到可能是 PHP 问题的方法。它看起来像一个代码问题。在第 6 行发布提交请求的 ajax 代码,最好是 $key 和 $_SESSION 的一些 var_exports 的输出。
-
你用什么事件来触发ajax代码?
-
@Jim ajax 代码由提交按钮触发。我在每个部分中使用带有不同部分的手风琴。
-
ajaxtest.php长什么样子? -
@Paystey 我发布了 ajax 代码。
标签: php ajax session-variables multipartform-data