我正在使用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的問題。它看起來像一個代碼問題。發佈提交請求的ajax代碼,並優先輸出第6行的$ key和$ _SESSION的某些var_exports的輸出。 – Paystey 2011-05-27 23:25:58
您使用什麼事件觸發ajax代碼? – 2011-05-27 23:31:51
@Jim ajax代碼由提交按鈕觸發。我在每節中使用帶有不同部分形式的手風琴。 – Ken 2011-05-27 23:46:42