JQuery函数过早加载

时间:2013-12-15 21:12:37

标签: javascript php jquery html

我的目标是按下按钮时,它会用文本框和按钮替换div的内容。当按下按钮时,它会将文本发布到脚本,该脚本处理请求并将输入的数据从文本框存储到数据库中。

然后设置为调用另一个名为Reset();的函数,该函数应该恢复div的旧内容。但是,我想到它的想法是调用DB Query来查找数据库中当前的内容。但是,它并没有这样做,它只是获得旧的价值。这让我觉得该功能在页面的开头运行,而不是在它被调用时运行。

它肯定会更新值,因为当我刷新值时会更新。这是我的代码:

<script>

   $(function () {
       $('#button').on('click', function(e) {
           var myVar = <?php echo json_encode($db->result("SELECT * FROM revision_notes", "notes")); ?>;
           $('#WCTarget').html("<div class='span12'><h2>Revision Notes</h2><form id='revisionnotes' name='revisionnotes' method='POST'><textarea style='width:100%;height:290px; padding:10px;' id='notes' name='notes'>" + myVar + "</textarea><br/><button onclick='Button();' name='submit' id='submit' class='btn btn-primary'>Change Revision</button></div></form></div>");
       });
   });

   function Reset() {
       var myVar2 = <?php echo json_encode($db->result("SELECT * FROM revision_notes", "notes")); ?>;
       $('#WCTarget').html("<h2>What's new?</h2><div class='well'>" + myVar2 + "</div><input type='button' value='Change Revision' id='button' name='button' class='btn btn-primary'>");
     });

   function Button() {
    $('#revisionnotes').on('submit', function(e) {
        var data = $(this).serialize();
        $.ajax({
            type: 'post',
            url: 'submits/updatenotes.php',
            data: data, // $('form').serialize(),
            success: function (data, textStatus, jqXHR) {
                Reset();
                alert("Delta - POST submission succeeded");
            }
        });
        e.preventDefault();
    });
}   
</script>

有没有办法阻止函数从数据库中检索值,直到从Button函数的成功调用它为止?

非常感谢,Jarrod。

1 个答案:

答案 0 :(得分:1)

$(function () {
       $('#button').on('click', function(e) {
           var myVar = <?php echo json_encode($db->result("SELECT * FROM revision_notes", "notes")); ?>;
           $('#WCTarget').html("<div class='span12'><h2>Revision Notes</h2><form id='revisionnotes' name='revisionnotes' method='POST'><textarea style='width:100%;height:290px; padding:10px;' id='notes' name='notes'>" + myVar + "</textarea><br/><button onclick='Button();' name='submit' id='submit' class='btn btn-primary'>Change Revision</button></div></form></div>");
       });
   });

这不是“完全”一个函数,它是围绕一段代码的闭包,它只运行一次,页面加载。

如果您想从服务器加载更改值,则需要使用AJAX,就像您用于数据提交一样。