【发布时间】:2020-09-23 02:36:28
【问题描述】:
这是我的 test.php 代码
<input type="button" value="click me" name="my_btn" onclick="mybtn();">
<?php
echo("before is set");
if(isset($_POST['hello'])=="dear"){
echo("after is set true");
}
?>
<script src="vendor/jquery/jquery.min.js"></script>
<script>
function mybtn(){
$.ajax({
url:"http://localhost/mysites/php_two/test.php",
method:"post",
data:{hello:"dear"},
});
}
</script>
当按钮被点击时,页面只显示 仅按钮图标 +“设置之前”文本。
但在 Devtools 网络预览中(在 chrome 浏览器中),它显示 按钮图标 +" before is setafter 设置为 true"
请帮我解决这个问题。
【问题讨论】:
-
网络预览显示响应包含的内容,这意味着
isset正在工作。示例代码缺少done函数,任何从AJAX调用返回的东西都必须在done函数中处理,这就是AJAX的思想,请求不会触发页面加载。 -
isset() 将返回一个 bool,然后您将它与一个 string 进行比较,这永远不会是真的。你想要
if(isset($_POST['hello']) && $_POST['hello'] == "dear")
标签: javascript php jquery ajax post