Estoy creando un formulario de pasos múltiples con Ajax y me gustaría cambiar el texto que se muestra en función del valor de un campo de formulario. Pensé que una buena forma de hacerlo sería con una variable de sesión. ¿Cómo le digo a la sesión que actualice con el nuevo valor del campo? Actualmente, la sesión solo parece almacenar el valor inicial, pero no las actualizaciones. Entonces, si un usuario ingresa "Juan" como primer nombre y luego regresa y lo cambia a "Frank", "Juan" es el nombre almacenado.Cómo actualizar una variable de sesión
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);
no veo una manera que podría ser un problema PHP. Parece un problema de código. Publique su código ajax que envía la solicitud y, preferiblemente, el resultado de algunas var_exports de $ key y $ _SESSION en la línea 6. – Paystey
¿Qué evento está utilizando para activar el código ajax? –
@Jim El código ajax se activa con un botón de envío. Estoy usando un acordeón con diferentes partes del formulario dentro de cada sección. – Ken