下面是01.html文档的内容:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="02.php"></script>
<SCRIPT src="../02无限折叠之前/jquery.js"></SCRIPT>
</head>
<body>
<script>
f();
</script>
</body>
</html>
下面是02.php文档的内容:
function f(){
$.ajax({
type: "POST",
data: {a:"ABC"}
})
<?php
if(isset($_POST["a"])){
$A=$_POST["a"];
$A=json_encode($A);
}
else{
$A="AX";
$A=json_encode($A);
}
?>
let x=<?php echo $A ?>;
alert(x);
}
运行01.html,弹出来了AX。但我希望它弹出来ABC。
问题出在了哪里?
ajax不是这样用的。
你要把js与php写成两个文件。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="02.js"></script>
<SCRIPT src="../02无限折叠之前/jquery.js"></SCRIPT>
</head>
<body>
<script>
f();
</script>
</body>
</html>
02.js
function f(){
$.ajax({
url: "02.php",
type: "POST",
data: {a:"ABC"},
dataType: "text",
success: function (data) {
let x=data;
alert(x);
}
});
}
02.php
<?php
if(isset($_POST["a"])){
$A=$_POST["a"];
$A=json_encode($A);
}
else{
$A="AX";
$A=json_encode($A);
}
echo $A;
?>;
$A=$_POST["a"];
在这块输出一下,看是否接收到了请求中的值。
在执行这一句的时候,02.php的内容已经定下来了,所以你用ajax其实是没有a的