我首先找到了答案,但是没有什么能够清楚地知道这一点,所以这就是......
HTML文件:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="new-task">
<input id="task-field" type="text" name="task">
<button type="submit">change value</button>
</form>
<div id="output"></div>
JS档案:
$(document).ready(function(){
$("#new-task").submit(function(event){
event.preventDefault();
var inputValue = $("#task-field").val();
$.ajax({
url: "ajaxRequest.php",
data: "task="+inputValue
});
});
$("#output").load("ajaxRequest.php");
});
PHP文件:
if(isset($_GET['task'])) echo $_GET['task'];
else echo "get not set";
所以我只想在每次通过表单写入和提交内容时,在“输出”div中输出php的$ _GET值。相反,它会在第一次加载页面时输出“get not set”,即使我提交了一个值,也会保持这样。浏览器的网络选项卡显示正在发送请求并创建“任务”获取变量(创建屏幕截图 - https://gyazo.com/2c45024df4338b0481da4494ba89e49e),但仍未输出。我错过了什么?我一定明白错了......
答案 0 :(得分:1)
代码看起来只是在页面准备就绪时才加载一次,因为它在提交函数之外。另一个ajax调用命中提交,但看起来代码永远不会重新加载数据,而不是初始页面加载时间。
尝试添加.done()回调来加载数据,如
$.ajax({
url: "ajaxRequest.php",
data: "task="+inputValue
}).done(function(returnData){
$("#output").html(returnData);
});
未经测试,因此您可能需要进行调整。