Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

297
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda