当我这样做时:
<html>
<head>
</head>
<body>
<?php
$value = isset($_GET['send_request']) ? $_GET['send_request'] : false ;
if ($value) {
echo $value;
return;
}
?>
<a href="javascript: test()">A</a>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript">
function test() {
// data to send
var data = { send_request: 'Yes'}
request = $.ajax({
method: 'get',
data: data
});
request.done(function(response){
console.log(response);
});
}
</script>
</body>
</html>
在我得到的控制台中:
<html>
<head>
</head>
<body>
Yes
为什么会这样?
答案 0 :(得分:3)
这里的错误是你的PHP代码在你输出这个部分后执行:
const x = {
a: c(), // returns an object
b: {
x: {...},
y: () => {...}
} // is an object
}
// is this even doable
{< some magic stuff >} = x
typeof a === typeof b //true
将php代码移动到页面顶部,它将修复此问题:) 请记住,当你执行php脚本时,php不会忽略html,而是考虑输出并继续执行:)
答案 1 :(得分:0)
最佳做法是将PHP代码移动到单独的PHP文件中,并在ajax函数的url
选项中指定它的路径。那个新的PHP文件当然不应该在PHP代码之前包含 HTML ,如前所述。