jQuery load()没有从文件中获得更新结果(?!)

时间:2016-05-23 20:24:18

标签: jquery load

我首先找到了答案,但是没有什么能够清楚地知道这一点,所以这就是......

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),但仍未输出。我错过了什么?我一定明白错了......

1 个答案:

答案 0 :(得分:1)

代码看起来只是在页面准备就绪时才加载一次,因为它在提交函数之外。另一个ajax调用命中提交,但看起来代码永远不会重新加载数据,而不是初始页面加载时间。

尝试添加.done()回调来加载数据,如

$.ajax({
    url: "ajaxRequest.php",
    data: "task="+inputValue
}).done(function(returnData){
     $("#output").html(returnData);
});

未经测试,因此您可能需要进行调整。