JQuery-这是非常新的
我试图使用JQuery-这是非常新的,jquery,jquery-ui-droppable,Jquery,Jquery Ui Droppable,我试图使用jQuery在两个网格之间执行拖放操作。数据记录在一个mysql表中。当拖放成功时,我希望更新表中被拖动记录的值。换句话说,我试图记录元素被丢弃到的单元格的id。不断获取“未定义”或NaN错误消息 以下是jquery代码:- $(document).ready(function() { $('#flights').html('Change List:<br/>'); // Set up change list div va
jQuery
在两个网格之间执行拖放操作。数据记录在一个mysql表中
。当拖放成功时,我希望更新表中被拖动记录的值。换句话说,我试图记录元素被丢弃到的单元格的id。不断获取“未定义”或NaN
错误消息
以下是jquery代码:-
$(document).ready(function() {
$('#flights').html('Change List:<br/>'); // Set up change list div
var sourceColIndex;
var allowedClassArr = ['Instr','Capt','First'];
$('#tblSim td span').hover(function(){
$(this).css("background-color", "lightgreen");
}, function(){
$(this).css("background-color", "white");
});
$('#tblSim td span').draggable({
revert: "invalid",
zIndex: 100,
start: function(event, ui) {
var foo = $(ui.helper).parent(); // should return td
sourceColIndex = foo.index(); //this is the column number
$(ui.helper).css({
padding: "2.5px 5px",
border: "1px solid #ddd",
background: "yellow"
});
}
});
$('#tblSimBooking tr td').droppable({
accept: "#tblSim td span",
activeClass: "ui-state-highlight",
drop: function(ev, ui) {
//pick up the crew member details and date
var itemid = ui.draggable.attr('emplid');
var itemid1 = ui.draggable.attr('emplast');
var itemid2 = ui.draggable.attr('rdate');
//optional alert to help confirm
alert ("Scheduling " + itemid + " " + itemid1 + " On " + itemid2);
var $draggable = $(ui.draggable);
var draggableClass = $draggable.attr('class'),
draggableClass = draggableClass.split(' ');
var $targetTD = $(ev.target); // should return td
console.log($targetTD);
var targetColInd = $targetTD.index();
console.log(targetColInd);
var txt;
var r = confirm("Confirm move for " + itemid1);
if (r == true) {
txt = "OK";
} else {
txt = "Cancel";
$draggable.draggable('option', 'revert', true);
return false;
}
//no need to execute other codes if col index doesn't match[ supposed to match the dates]
if(sourceColIndex != targetColInd) {
$draggable.draggable('option', 'revert', true);
return false;
}
var targetSpans = $targetTD.find('span');
//Check whether item is present, if present then revert, duplicate found.
var flag =false;
$.each(targetSpans,function(i,v){
if( $(this).hasClass(draggableClass[0])){
flag= true;
}
});
if(flag){
//alert the user if necessary
//alert('Duplicate '+draggableClass[0]+' found.');
$draggable.draggable('option', 'revert', true);
return false;
}
$(ui.draggable).detach().css({
top: 'auto',
left: 'auto',
background: '#f3f3f3'
}).appendTo(this);
$.ajax({
method: "POST",
url: "update_sim_status.php",
data:{'itemid': itemid,'itemid1': itemid1,'itemid2': itemid2},
}).done(function( data ) {
var result = $.parseJSON(data);
//alert (result['success']);
var itemstatus;
if (result['success']==1) itemstatus = "OK";
//display change log on page
$('#flights').append(itemid+itemid1+itemid2+itemstatus+'<br/>');
});
}
});
});
$(文档).ready(函数(){
$('#flights').html('更改列表:
');//设置更改列表div
var-sourceColIndex;
var allowedClassArr=['Instr','Capt','First'];
$('#tblSim td span')。悬停(函数(){
$(this.css(“背景色”、“浅绿色”);
},函数(){
$(this.css(“背景色”、“白色”);
});
$('tblSim td span')。可拖动({
回复:“无效”,
zIndex:100,
开始:功能(事件、用户界面){
var foo=$(ui.helper).parent();//应返回td
sourceColIndex=foo.index();//这是列号
$(ui.helper).css({
填充:“2.5px 5px”,
边框:“1px实心#ddd”,
背景:“黄色”
});
}
});
$('tblsimboking tr td')。可拖放({
接受:“tblSim td span”,
activeClass:“ui状态突出显示”,
下拉:功能(ev、ui){
//获取机组成员详细信息和日期
var itemid=ui.draggable.attr('emplid');
var itemid1=ui.draggable.attr('emplast');
var itemid2=ui.draggable.attr('rdate');
//用于帮助确认的可选警报
警报(“调度”+itemid+“”+itemid1+”在“+itemid2”上);
变量$draggable=$(ui.draggable);
var draggableClass=$draggable.attr('class'),
draggableClass=draggableClass.split(“”);
var$targetd=$(ev.target);//应返回td
console.log($targetTD);
var targetColInd=$targetTD.index();
console.log(targetColInd);
var-txt;
var r=确认(“确认”+项目ID1的移动);
如果(r==true){
txt=“确定”;
}否则{
txt=“取消”;
$draggable.draggable('option','revert',true);
返回false;
}
//如果列索引不匹配[应该匹配日期],则无需执行其他代码
if(sourceColIndex!=targetColInd){
$draggable.draggable('option','revert',true);
返回false;
}
var targetspan=$targetTD.find('span');
//检查项目是否存在,如果存在,则恢复,发现重复项。
var标志=假;
$。每个(目标跨度、函数(i、v){
if($(this).hasClass(DragableClass[0])){
flag=true;
}
});
国际单项体育联合会(旗){
//必要时提醒用户
//警报('发现重复'+DragableClass[0]+'个');
$draggable.draggable('option','revert',true);
返回false;
}
$(ui.draggable).detach().css({
顶部:“自动”,
左:“自动”,
背景:“#f3”
}).附于(本);
$.ajax({
方法:“张贴”,
url:“update_sim_status.php”,
数据:{'itemid':itemid,'itemid1':itemid1,'itemid2':itemid2},
}).完成(功能(数据){
var result=$.parseJSON(数据);
//警报(结果['success']);
var项目状态;
如果(结果['success']==1)itemstatus=“确定”;
//在页面上显示更改日志
$(“#航班”).append(itemid+itemid1+itemid2+itemstatus+”
);
});
}
});
});
这是我们要放入的网格的HTML
$simarray = array("400SIM-1","400SIM-2","400SIM-3","800SIM-1","800SIM-2","800SIM-3","800SIM-4","SAASIM-1","SAFSIM-1","SIMBLK");
for ($s=1; $s<=10; $s++) {
echo '<tr><td>'.$simarray[$s];
for ($d=1; $d<=20; $d++) {
$date1 = date("M-d", strtotime($sd)+(($d-1)*86400));
$date2 = date("Y-m-d", strtotime($sd)+(($d-1)*86400));
echo '<td id5="xx"width="4%">';
$q3r = mysqli_query($conn,'SELECT Roster_ID,Employee FROM roster WHERE Duty_ID LIKE "'.$simarray[$s].'" && Date="'.$date2.'" ');
while ($r3r= mysqli_fetch_array($q3r)) {
echo $crewName[$r3r[1]].'<br/>';
}
echo '</td>';
}
}
$simarray=阵列(“400SIM-1”、“400SIM-2”、“400SIM-3”、“800SIM-1”、“800SIM-2”、“800SIM-3”、“800SIM-4”、“SAASIM-1”、“SAFSIM-1”、“SIMBLK”);
对于($s=1;$s这里是您的关闭tr(
)?在PHP的第3行,它会打开一个tr
和一个td
,但我看不到它们在哪里关闭。谢谢David/tr没有添加任何更改