[英]Edit fullcalendar event data in popup
在我的全日歷中,單擊事件時,將打開帶有事件數據的彈出窗口,並且如果狀態為“打開”(使用ajax從數據庫中檢索),則將select附加如下:
eventClick: function (calEvent, jsEvent, view) {
$("#dialog").dialog({
autoOpen: false,
});
$("#name").val(calEvent.status);
$("#title").val(calEvent.title);
if(calEvent.status == 'open') {
$('#append .appact').remove();
$('#append').append("<div class='appact'><select><option selected='selected'>Accept</option><option>Reject</option></select><input type='submit' name='submit'></div>");
} else {
$('#append .appact').remove();
}
$('#dialog').dialog('open');
}
如何從php文件的彈出窗口中提交選擇值(或其他任何值)以更新數據庫中的數據?
理想的方法是將用戶輸入包裝為鏈接到單獨的php文件的形式。 然后,您將用戶提交的任何內容發送到數據庫。 因此,是模態中的一種形式。 讓我知道是否需要進一步澄清。
我用於全日歷的彈出窗口(即,它是一個燈箱)有兩個按鈕,確定和取消。
如果單擊確定按鈕,請執行以下步驟:
// 1. Collect all the data that should be sent to the server.
var myValue = $('#myField').val();
if (!myValue) ... ...
...
...
var dataToStore = {
'field1' : $('myField1').val(),
'field2' : date2,
...
};
// 2. Start an ajax call to send the data to the server.
$.ajax({
// Get the form content
url: 'index.php?id=21&type=2&action=saveEntry ... ... ',
context: this,
data : dataToStore,
success: function(data, textStatus, jqXHR) {
// handle the server answer, and remove the lightbox form.
removeLightboxWidget();
},
error: function(jqXHR, textStatus, error) {
// Handle the error
}
});
...
作為服務器的答案,我更喜歡JSON,例如{ 'status' : 'ok', 'result' : 'asfasdf', ...}
這樣,您就可以很好地應對來自服務器的信息。
嘗試盡可能匹配名稱。 它將減少工作量。 因此,數據庫中的字段“名稱”在形式上可以稱為“名稱”。 這樣,您將能夠使用自動化例程。 話雖如此,如果您有一個使用ajax()
方法發送的數據對象,那么jQuery(如果使用它)將為您執行HTTP GET編碼。
在PHP文件中,只需$_GET['xxx']
或$_POST['yyy']
您的數據。 將值形成查詢,解釋操作命令並將查詢發送到數據庫。 順便說一句,如果您希望閱讀一些有益的知識,請參見CRUD模式:創建,讀取,更新,刪除。 在與問題描述類似的設置中,您將始終執行這四個步驟,所有例外和變更均會發生。 許多庫允許在較高級別上實現CRUD模式(AngularJS,Backbone ...),因此您可以擺脫數據庫與瀏覽器之間的大量工作。
希望這給您一個良好的開端:-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.