我正在尝试将数组从PHP返回到AJAX,但它返回NULL而不是我发送回AJAX的数据
这是我的代码
的header.php
<?php
include_once("obtainData.php");
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>AJAX CALL</title>
<!-- JQuery -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
</head>
<body>
的index.php
<?php
include_once("header.php");
?>
<div>
<h3>AJAX CALL</h3>
<p>
<?php
sendData();
?>
</p>
</div>
<?php
include_once("footer.php");
?>
footer.php
<script>
$.ajax({
url: "obtainData.php",
data: {action: 'sendData'},
type: 'GET',
success: function(data) {
alert(data);
alert("Success");
},
error: function() {
alert( "Error." );
}
});
</script>
</body>
</html>
obtainData.php
<?php
if(isset($_POST["action"])){
$action = $_POST['action'];
switch($action) {
case 'sendData':
sendData();
break;
}
}
function sendData(){
$array = [];
for($i = 0; $i < 20; $i++){
$array[$i] = "prove";
}
echo json_encode($array);
}
?>
如果我在嵌入式PHP上调用我的sendData
方法,它会向我显示输出,但我无法从AJAX调用中获取它。
我错过了什么吗?
提前致谢!
答案 0 :(得分:3)
您在Ajax通话中使用type: 'GET',
。
你正试图在你的php文件中检索$_POST
。这就是为什么一无所获。
将type: 'GET',
更改为type: 'POST',
答案 1 :(得分:2)
问题是因为您发送了GET请求,但使用$_POST
来检索该值。因此isset($_POST["action"])
始终为假。
使用$_GET
检索PHP代码中的值,或更改jQuery以发送POST
请求。