我正在创建一个演讲时间表,其中用户在表行中设置记录,并且将根据需要添加一个以上的表行。
我面临的问题是,当数据库中表行记录中的任何一个已经存在时,就提交表单。
在数据库中找到记录时,是否有任何方法可以停止提交表单?我正在使用for循环检查表的每一行。
<button class="btn waves-effect waves-light right" type="button" id="submit_btn">Save<i class="mdi-content-send right"></i>/button>
$('#submit_btn').click(function(event) {
event.preventDefault();
var a;
var checkalready = 0;
var chkValue = $('[name="chk[]"]:checked').length;
for(var r=1; r<=chkValue; r++){
var sessionid = $('#sessionid').val();
var prev_start_time = $('#class_strt'+r).val();
var prev_end_time = $('#class_end'+r).val();
var prev_room = $('#room'+r).val();
var prev_weekdays = $('#week_days'+r).val();
$.ajax({
type: "POST",
url: "check_multi_timetable.php",
data: {session: sessionid, startTime: prev_start_time, endTime:prev_end_time, weekday: prev_weekdays, room: prev_room},
success: function(result) {
var value = $.trim(result);
alert(value);
if (value == "1"){
alert('TimeTable Already Exist');
a =r-1;
$('#class_strt'+a).val('');
$('#class_end'+a).val('');
} else{
checkalready = 1;
}
},
});
}
if(checkalready=='1'){
alert("Form submit");
//document.getElementById("frm1").submit();
}
});
用户在2个表行中输入一条记录,然后单击“保存”按钮,然后javascript和jquery将检查这2个表行在数据库中是否已存在。
答案 0 :(得分:0)
提交-按钮或按钮类型的属性,告诉浏览器对表单采取措施(通常将其发送到服务器)。
如果您正在使用按钮类型提交或表单提交,它将重新加载页面。 代替此
<button class="btn waves-effect waves-light right" type="button" id="submit_btn">Save<i class="mdi-content-send right"></i>/button>
使用此
<input class="btn waves-effect waves-light right" type="button" id="submit_btn" />Save<i class="mdi-content-send right"></i>
您可以检查答案here
答案 1 :(得分:0)
首先,最好完全重构代码,因为您执行了太多请求(假设用户检查了很多行,所以您有10个或更多请求)。更好地优化您的后端和SQL查询。然后根据数据库中的答案,将响应发送到{row1Existance: true, row2Existance:false}
等前端whith值。