2013-12-15 37 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,和你用來提交數據一樣。