Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

301
Vistas
Valor indefinido de Ajax en PHP

Cuando llamo a la función siempre obtengo un valor indefinido, no entiendo qué puede arruinarlo.

Has iniciado sesión como indefinido, Error indefinido

Guión Ajax:

 function Submit() { console.log('asd') $.ajax({ url: "Server.php", type: "POST", dataType: "json", data: { name: "Test2", email: "Test@gmail.com" }, success: function(data, textStatus, jqXHR) { console.log("You are logged in as: ", data.name); $('#user').html("You are logged in as: " + data.name); }, error: function(request, error, data) { console.log(arguments); alert(" Can't do because: " + error + " DATA: " + data); } }) }

Guión PHP:

 <?php header("Content-type: application/json; charset=utf-8"); $errors = []; $data = []; if (empty($_POST['name'])) { $errors['name'] = 'Name is required.'; } if (empty($_POST['email'])) { $errors['email'] = 'Email is required.'; } if (!empty($errors)) { $data['success'] = false; $data['errors'] = $errors; } else { $data['success'] = true; $data['message'] = 'Success!'; $data['name'] = $_POST['name']; } echo json_encode($data); ?>

Probé todas las soluciones en vano, por lo que todavía obtengo un valor indefinido. Poco a poco estoy empezando a pensar que no hay nada malo con el guión.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Desea usar data.name pero nunca devuelve el nombre. de ahí lo indefinido. He agregado data.name en el siguiente ejemplo y parece funcionar bien.

 <?php header("Content-type: text/html; charset=utf-8"); $errors = []; $data = []; if (empty($_POST['name'])) { $errors['name'] = 'Name is required.'; } if (empty($_POST['email'])) { $errors['email'] = 'Email is required.'; } if (!empty($errors)) { $data['success'] = false; $data['errors'] = $errors; } else { $data['success'] = true; $data['message'] = 'Success!'; $data['name'] = $_POST['name']; } echo json_encode($data); ?>

Además, los parámetros utilizados en la función de éxito están en un orden diferente al que parece usar, en su caso, la request tendrá sus datos.

about 4 years ago · Juan Pablo Isaza Denunciar

0

el parámetro de devolución de llamada no

 success:function(request, data, error)

pero

 success: function(data, textStatus, jqXHR)

data.name por supuesto undefined porque es una string

y su Server.php devuelve esto

 {"success":true,"message":"Success!"}

no data.name pero data.success y data.message

así que tienes que escribir

 if (!empty($errors)) { $data['success'] = false; $data['errors'] = $errors; } else { $data['success'] = true; $data['message'] = 'Success!'; $data['name'] = $_POST['name']; // add this }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda