Php jQuery Json响应打印html标记
当我这样做时:Php jQuery Json响应打印html标记,php,jquery,ajax,Php,Jquery,Ajax,当我这样做时: <html> <head> </head> <body> <?php $value = isset($_GET['send_request']) ? $_GET['send_request'] : false ; if ($value) { echo $value; return; } ?> <a href="javascript
<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
这是为什么?这里的错误是您的php代码在输出此部分后执行:
<html>
<head>
</head>
<body>
将php代码移到页面顶部,它将修复此问题:
请记住,当您执行PHP脚本时,PHP将不使用OMMIT,而是考虑它的输出并继续进行:
。最好的做法是将PHP代码移到单独的PHP文件中,并在Ajax函数的URL选项中指定它的路径。新的PHP文件当然不应该像前面指出的那样在PHP代码之前包含HTML。
这是因为这是在PHP执行之前输出的HTML。将PHP放在HTML之前,或者放在它自己的文件中。谢谢!解释得很好!我只是在快速测试一些东西。一般来说是的,我会把东西分开。