Я создаю многошаговую форму с помощью Ajax и хотел бы изменить отображаемый текст в зависимости от значения поля формы. Я думал, что хороший способ сделать это будет с переменной сеанса. Как сказать сеансу обновиться с новым значением поля? В настоящее время кажется, что сеанс хранит только начальное значение, но не обновляет его. Таким образом, если пользователь вводит «Джон» в качестве имени, а затем возвращается и меняет его на «Фрэнк», «Джон» - это сохраненное имя.
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);