如果在数据库中找到记录,

时间:2018-10-08 07:21:45

标签: javascript jquery

我正在创建一个演讲时间表,其中用户在表行中设置记录,并且将根据需要添加一个以上的表行。

我面临的问题是,当数据库中表行记录中的任何一个已经存在时,就提交表单。

在数据库中找到记录时,是否有任何方法可以停止提交表单?我正在使用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个表行在数据库中是否已存在。

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值。