2013-12-15 38 views
0

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

然后它被设置为调用称为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。

+0

您的Reset()函数使用当页面首次投放时设置的myVar2变量。您需要使用'$ .ajax()'成功函数的'data'参数中的值,并且'updatenotes.php'页面需要返回新值。 – nnnnnn

+0

谢谢帮助!辉煌。 – Jarrod

回答

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>"); 
     }); 
    }); 

这不是“精确”的功能,它是围绕着一段代码封闭运行只有一次,页面的onload事件。

如果你想从你的服务器加载一个改变的值,你需要使用AJAX,和你用来提交数据一样。