-2

我在跨度的 id 中捕获 JSON / Ajax 响应,好吧。但我无法将响应保存在 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>

答案在 span 的 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
?>

过程.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);

有人能帮我吗?

4

2 回答 2

0

最后,没有人给出正确答案。如果有人问一个问题,那是因为他们不知道答案,并且应该在这里他们可以得到帮助,只有极少数人关心理解问题并尝试提供一些解决方案,但也有其他人认为他们是代码的聪明/天才,他们只批评,他们不贡献任何东西。

于 2018-12-10T23:26:53.533 回答
-1

这真的很简单。

在您的 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 帖子的一部分。因此,显而易见的是,您无法从该位置获取您的帖子数据,因为那不是您发送它的位置。您发送它的地方没有任何代码来处理它,因此问题。

至少基于发布的代码。

于 2018-12-10T20:06:16.630 回答