Javascript 在数据库中发布重复的Ajax调用
我正在使用php来使用Fullcalendar jquery进行事件管理。我使用ajax调用添加事件。对于刷新后的第一个事件条目,调用可以正常工作。但对于以下事件条目,会为每个条目创建重复的事件。不知道是什么原因造成的 这就是错误: 这是jquery调用: Jquery 这是PHP代码: PHPJavascript 在数据库中发布重复的Ajax调用,javascript,php,jquery,ajax,fullcalendar,Javascript,Php,Jquery,Ajax,Fullcalendar,我正在使用php来使用Fullcalendar jquery进行事件管理。我使用ajax调用添加事件。对于刷新后的第一个事件条目,调用可以正常工作。但对于以下事件条目,会为每个条目创建重复的事件。不知道是什么原因造成的 这就是错误: 这是jquery调用: Jquery 这是PHP代码: PHP 请有人帮我解决这个问题。我会给每个事件添加一个控件,例如一个动态GUID,然后可以用来保存到DB。通过这种方式,您可以在处理CalDAV协议时使用GUID,如果您选择使用日历,还可以确保数据库中没有偶然
请有人帮我解决这个问题。我会给每个事件添加一个控件,例如一个动态GUID,然后可以用来保存到DB。通过这种方式,您可以在处理CalDAV协议时使用GUID,如果您选择使用日历,还可以确保数据库中没有偶然复制的内容
现在,请记住,这只是一个补丁,而不是修复程序。因此,找到一种方法来阻止多次尝试将事件添加到数据库中,这对您自己有很大好处。无论您是否成功地找到了bug,使用控制机制或唯一标识符都是一个好主意。在插入查询之前,您应该检查是否已为特定的star插入了事件,并检查开发人员控制台。检查“网络”选项卡,查看数据是否实际发送了多次。这将有助于确定是客户端代码还是其他代码。您必须解除单击操作的绑定,否则它将保留在dom中。$'evesav'”解除绑定单击;我不确定这是不是真的,但我有一个类似的问题,有一次我读到了关于堆栈溢出的类似答案。只需谷歌复制ajaxsubmission@r3wt我试过了,但没有help@winnyboy5您的代码是否在提交所有事件时添加了一个新条目,即在10日添加了a,然后在11日添加了b?在这种情况下,您必须检查start和end的事件是否已经存在,类似于Ajax提交的事件
$('#evesav').bind('click',function(){
$('#evesav').attr('disabled','disabled');
var title = $('#evename').val();
var edes = $('#evedes').val();
var everegion = $('#everegion').val();
var eveserv = $('#eveserv').val();
$.ajax({
url: 'add_events.php',
data: 'title='+ title+'&start='+ start +'&end='+ end +'&edes='+ edes +'&everegion='+ everegion +'&eveserv='+ eveserv,
type: "POST",
success: function(json) {
$('#myModal').modal('hide');
$('#alertcon').html(json);
$('#alert').modal('show');
$('#evename').val("");
$('#evedes').val("");
$('#evesav').removeAttr('disabled');
$('#calendar').fullCalendar( 'refetchEvents' );
}
});
$('#calendar').fullCalendar( 'rerenderEvents' );
});
<?php
if(($_POST['title'] && $_POST['start'] && $_POST['end'] && $_POST['edes'] && $_POST['everegion'] && $_POST['eveserv'])!= NULL)
{
// Values received via ajax
$title = $_POST['title'];
$start = $_POST['start'];
$end = $_POST['end'];
$edes = $_POST['edes'];
$region = $_POST['everegion'];
$server = $_POST['eveserv'];
//echo $title."".$start."".$end."".$edes."".$region."".$server;
// connection to the database
include('includes/db.php');
// insert the records
$sql = "INSERT INTO evenement (title, start, end, edes, region, server) VALUES (:title, :start, :end, :edes, :region, :server)";
$q = $bdd->prepare($sql);
$q->execute(array(':title'=>$title, ':start'=>$start, ':end'=>$end, ':edes'=>$edes, ':region'=>$region, ':server'=>$server));
if($q->execute(array(':title'=>$title, ':start'=>$start, ':end'=>$end, ':edes'=>$edes, ':region'=>$region, ':server'=>$server))){
var_dump($q->execute(array(':title'=>$title, ':start'=>$start, ':end'=>$end, ':edes'=>$edes, ':region'=>$region, ':server'=>$server)));
}
$eveid=$bdd->lastInsertId();
// Get array of all source files
$files = scandir("uploads/");
// Identify directories
$source = "uploads/";
$destination = "evedata/".$eveid."/";
mkdir("evedata/".$eveid);
// Cycle through all source files
foreach ($files as $file) {
if (in_array($file, array(".",".."))) continue;
// If we copied this successfully, mark it for deletion
if (copy($source.$file, $destination.$file)) {
$delete[] = $source.$file;
}
}
// Delete all successfully-copied files
foreach ($delete as $file) {
unlink($file);
}
echo "Added Successfully";
}
else {
echo "Please Fill the data";
}
?>