在弹出窗口中编辑fullcalendar事件数据

时间:2014-07-08 12:35:20

标签: javascript php jquery fullcalendar

在我的fullcalendar中,当点击事件时,弹出窗口会显示事件数据,如果状态为“打开”(从带有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文件中的弹出窗口提交选择值(或任何其他值)来更新数据库中的数据?

2 个答案:

答案 0 :(得分:0)

理想的方法是将用户输入包装在一个链接到单独的php文件的表单中。然后,您将用户提交的任何内容发送到数据库。所以,你的模态中的一个表单。如果需要进一步澄清,请告诉我。

答案 1 :(得分:0)

我用于fullcalendar的弹出窗口(即它是一个灯箱)有两个按钮,ok和cancel。

如果我点击确定按钮,我会执行以下步骤:

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

...

作为服务器答案,我更喜欢像{ 'status' : 'ok', 'result' : 'asfasdf', ...}这样的JSON。这样,你可以对来自服务器的内容作出很好的反应。

尝试尽可能匹配名称。它会减少工作量。所以这个领域&#34;名称&#34;在数据库中可能会被称为&#34; name&#34;在形式。像这样,您将能够使用自动例程。话虽这么说,如果您有一个使用ajax()方法发送的数据对象,jQuery(如果您使用它)将为您执行HTTP GET编码。

在PHP文件中,只需$_GET['xxx']$_POST['yyy']您的数据。将值形成查询,解释操作命令并将查询发送到数据库。顺便说一句,如果您希望阅读有关的内容,请参阅CRUD模式:创建,读取,更新,删除。在您使用问题描述的设置中,您将始终实施这四个步骤,包括所有例外和变体。许多库允许在高级别上实现CRUD模式(AngularJS,Backbone ...),因此您可以摆脱数据库和浏览器之间的大量工作。

希望这会给你一个良好的开端: - )