Проблема передать JSON / Ajax в переменную PHP - PullRequest
0 голосов
/ 10 декабря 2018

Я записываю ответ JSON / Ajax в id диапазона, хорошо.Но я не могу сохранить ответ в переменной PHP.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script type="text/javascript">
$("#enviar").click(function(e) {
	e.preventDefault();
	var nombre = $("#nombre").val(),
	apellido = $("#apellido").val(),
	edad = $("#edad").val(),

	datos = {"nombre":nombre, "apellido":apellido,"edad":edad};

	$.ajax({
		url: "procesa.php",
		type: "POST",
		dataType: 'json',
		data: datos
	}).done(function(respuesta){
		if (respuesta.estado === "ok") {
			 $('#myName').text(respuesta.nombre);
             $('#myApellido').text(respuesta.apellido);
             $('#myEdad').text(respuesta.edad);
		}
	});
});
</script>
<form id="form">
<input type="text" id="nombre" placeholder="Nombre" accept="text/plain"><br><br>
<input type="text" id="apellido" placeholder="Apellido" accept="text/plain"><br><br>
<input type="number" id="edad" placeholder="Edad" accept="text/plain">

<input type="submit" id="enviar" value="Enviar">
</form>

Ответ хорошо печатается в id диапазона, но во всех опциях POST, которые я пробовал, ничего не печатается.

<p>Name: <span id="myName"></span></p>
<p>Apellido: <span id="myApellido"></span></p>
<p>Edad: <span id="myEdad"></span></p>
<?php
echo $_POST["nombre"]; //Key json, nothing is printed.
echo $_POST["myName"]; //Name of var response, nothing is printed.
echo $_POST["respuesta.nombre"]; //Anothe json, nothing is printed.
$character = json_decode($respuesta);
echo $character->nombre; //nothing is printed. desperation
?>

Processa.php

header('Content-Type: application/json');
//Guardamos los datos en un array
$datos = array(
'estado' => 'ok',
'nombre' => $nombre, 
'apellido' => $apellido, 
'edad' => $edad
);
//Devolvemos el array pasado a JSON como objeto
echo json_encode($datos, JSON_FORCE_OBJECT);

Кто-нибудь может мне помочь?

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

В конце концов, никто не дает правильного ответа.Если кто-то задает вопрос, это потому, что он не знает ответа, и предполагается, что здесь они могут получить помощь, только очень немногие обеспокоены тем, чтобы понять вопрос и попытаться найти какое-то решение, но есть другие, которые думают, что онимудрый / гений кодов, они только критикуют, они ничего не дают.

0 голосов
/ 10 декабря 2018

Это довольно просто на самом деле.

В вашем Javascript у вас есть это:

$.ajax({
    url: "procesa.php", <-- data is sent to this page
    type: "POST",
    ...
});

Тогда для этой страницы у вас есть это:

The procesa.php

header('Content-Type: application/json');
//Guardamos los datos en un array
$datos = array(
    'estado' => 'ok',
    'nombre' => $nombre, <-- this is undefined
    'apellido' => $apellido, <-- this is undefined
    'edad' => $edad <-- this is undefined
);
//Devolvemos el array pasado a JSON como objeto
echo json_encode($datos, JSON_FORCE_OBJECT);

Что бы это ни было:

<p>Name: <span id="myName"></span></p>
<p>Apellido: <span id="myApellido"></span></p>
<p>Edad: <span id="myEdad"></span></p>
<?php
    echo $_POST["nombre"]; //Key json, nothing is printed.
    echo $_POST["myName"]; //Name of var response, nothing is printed.
    echo $_POST["respuesta.nombre"]; //Anothe json, nothing is printed.
    $character = json_decode($respuesta);
    echo $character->nombre; //nothing is printed. desperation
?>

Это явно не часть procesa.php, в которую вы отправляете свое сообщение AJAX.Поэтому должно быть очевидным, что вы не можете получить свои данные из этого места, потому что это не то место, куда вы их отправили.Место, куда вы его отправляете, не имеет никакого кода для его обработки и, следовательно, проблемы.

Ну, по крайней мере, на основе кода, который был опубликован.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...