簡體   English   中英

在彈出窗口中編輯全歷事件數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM