jQuery load() 没有从文件中获取更新结果 (?!)
jQuery load() doesn't get updated result from file (?!)
我先寻找了答案,但我对此一无所知,所以这里是...
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";
所以我只想在每次通过表单编写和提交内容时从 "output" div 中的 php 输出 $_GET 值。相反,它会在第一次加载页面时输出 "get not set" 并且即使我提交了一个值也会保持这种状态。浏览器的网络选项卡显示正在发送请求并创建了一个 'task' get 变量(创建了一个屏幕截图 - https://gyazo.com/2c45024df4338b0481da4494ba89e49e ),但仍然没有输出。我错过了什么?我一定是理解错了...
代码看起来好像只在页面准备就绪时加载一次,因为它在提交函数之外。另一个 ajax 调用命中提交,但看起来代码除了初始页面加载时间之外再也不会重新加载数据。
尝试添加 .done() 回调来加载数据,如
$.ajax({
url: "ajaxRequest.php",
data: "task="+inputValue
}).done(function(returnData){
$("#output").html(returnData);
});
未经测试,因此您可能需要进行调整。
我先寻找了答案,但我对此一无所知,所以这里是...
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";
所以我只想在每次通过表单编写和提交内容时从 "output" div 中的 php 输出 $_GET 值。相反,它会在第一次加载页面时输出 "get not set" 并且即使我提交了一个值也会保持这种状态。浏览器的网络选项卡显示正在发送请求并创建了一个 'task' get 变量(创建了一个屏幕截图 - https://gyazo.com/2c45024df4338b0481da4494ba89e49e ),但仍然没有输出。我错过了什么?我一定是理解错了...
代码看起来好像只在页面准备就绪时加载一次,因为它在提交函数之外。另一个 ajax 调用命中提交,但看起来代码除了初始页面加载时间之外再也不会重新加载数据。
尝试添加 .done() 回调来加载数据,如
$.ajax({
url: "ajaxRequest.php",
data: "task="+inputValue
}).done(function(returnData){
$("#output").html(returnData);
});
未经测试,因此您可能需要进行调整。