在我的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文件中的弹出窗口提交选择值(或任何其他值)来更新数据库中的数据?
答案 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 ...),因此您可以摆脱数据库和浏览器之间的大量工作。
希望这会给你一个良好的开端: - )