Ajax仍然执行甚至发现错误

时间:2017-03-13 09:29:44

标签: javascript php jquery html ajax

美好的一天程序员!我正在尝试提交表单,然后使用带有2个ajax事件的jquery对其进行验证。我正在使用ajax(timeconflict.php)来验证用户的时间输入是否存在冲突。但即使它返回错误,另一个ajax事件仍在执行(reserveroom.php)。对不起我的语法,这是我的代码

$('#submitreserve').click(function(){
var error=false;
var inputtimeerror = false;
var conflict = false;
var message="";
var to="";
var from="";
var fromH="";
var fromM="";
var toH="";
var toM="";
var now = new Date();

if($("#datetimepicker").val()=="" || $("#trtitle").val()=="" || $("#from").val()=="" || $("#to").val()=="")
{
  error = true;
  message ="Please Fill all required Fields!";
}
if($("#from").val()!="" && $("#to").val()!="")
  {
    from = $("#from").val(); // start time
    to = $("#to").val(); // end time
    fromH = from.substr(0,2); // get hour from start time
    fromM = from.substr(3,2); // get mins from start time

    toH = to.substr(0,2); // get hour from end time
    toM = to.substr(3,2); // get mins from end time

    var timeerror = false;
    var inputDate = $("#datetimepicker").val(); // date
    inputFrom = new Date(inputDate+" "+from); // time and start date
    inputTo = new Date(inputDate+" "+to); // time and end date

    if(fromH > toH)
    {
      timeerror=true;
    }

    if(fromH == toH && fromM >= toM)
    {
      timeerror=true;
    }

    if(to == from)
    {
      timeerror=true;
    }

    if(inputFrom <= now || inputTo <= now)
    {
      inputtimeerror = true;  
    }

    if(error == false && inputtimeerror == false)
    {
      $.ajax({
      type:'post',
      url: 'timeconflict.php',
      data: { startTime : from,
      endTime : to,
      inputDate : inputDate,
      room : target },
      dataType: 'json',
      success : function(e)
      {
        if (e.length == 0)
        {
          console.log("No value returned");
        }
        else
        {
          console.log(e[0]);
          console.log("Conflict time schedule!");
          conflict = true;
          error=true;
          alert("Conflict"); 
          return false;      
        }
      }
      });

    }

    if(inputtimeerror)
    {
      error=true;
      message = "Reservation time must be higher than time today!";
    }

    if(conflict)
    {
      error = true;
      message = "Conflict Time Schedule!";
    }

    if(timeerror)
    {
      message = "Invalid End Time!";
      error=true;
    }  

  }

if(error==true)
  {
    $("#error").text(message);
    return false;
  }

if(error==false)
  {
    $.ajax({
    type:'post',
    url: 'reserveroom.php',
    data: { trtitle : $("#trtitle").val(),
    from : $("#from").val(),
    to : $("#to").val(),
    datetimepicker : $("#datetimepicker").val(),
    ninjaday : $("#ninjaday").val(),
    ninjaroom : $("#ninjaroom").val() },
    dataType: 'json'
    });
  }
});

//timeconflict.php
<?php
include ('../conn.php');
// header("Content-Type: application/json");
$start_time = $_POST['startTime'];
$end_time = $_POST['endTime'];
$res_date = $_POST['inputDate'];
$res_room = $_POST['room'];

$sql = "SELECT * from tdc_reservation where ( ((`reserve_start` BETWEEN '".$start_time."' and '".$end_time."')";
$sql.= " or (`reserve_end` BETWEEN '".$start_time."'  and '".$end_time."' )) or";
$sql.= " (('".$start_time."' BETWEEN `reserve_start` and `reserve_end`) or ";
$sql.= " ('".$end_time."' BETWEEN `reserve_start` and `reserve_end`)) or ";
$sql.= " ((`reserve_start` = '".$start_time."' ) or (`reserve_end`='".$start_time."' ))";
$sql.= " or ((`reserve_start` = '".$end_time."') or (`reserve_end` = '".$end_time."')) )";
$sql.= " and reserve_date='".$res_date."' and reserve_room = '".$res_room."' LIMIT 1 ";
$result = mysql_query($sql,$con);
$stack = array();
while($row = mysql_fetch_array($result))
      {
        $stack[] = $row;
      } 
 $json = json_encode($stack);


mysql_close();
echo $json;
?>

我真的希望有人会帮助我,这个错误已经吃了2天了:(

1 个答案:

答案 0 :(得分:1)

修改了你的代码,希望这会有用

$('#submitreserve').click(function(){

var message="";
var to="";
var from="";
var fromH="";
var fromM="";
var toH="";
var toM="";
var now = new Date();

if($("#datetimepicker").val()=="" || $("#trtitle").val()=="" || $("#from").val()=="" || $("#to").val()=="")
{
  message ="Please Fill all required Fields!";
}else{


from = $("#from").val(); // start time
to = $("#to").val(); // end time
fromH = from.substr(0,2); // get hour from start time
fromM = from.substr(3,2); // get mins from start time

toH = to.substr(0,2); // get hour from end time
toM = to.substr(3,2); // get mins from end time


var inputDate = $("#datetimepicker").val(); // date
inputFrom = new Date(inputDate+" "+from); // time and start date
inputTo = new Date(inputDate+" "+to); // time and end date



if(fromH > toH || (fromH == toH && fromM >= toM) || to == from)
    {
      message = "Invalid End Time!";
    }
   else if(inputFrom <= now || inputTo <= now)
    {
      message = "Reservation time must be higher than time today!"; 
    }else{
      $.ajax({
      type:'post',
      url: 'timeconflict.php',
      data: { startTime : from,
      endTime : to,
      inputDate : inputDate,
      room : target },
      dataType: 'json',
      success : function(e)
      {
        if (e.length == 0)
        {
          console.log("No value returned");
          reserveRoom();
        }
        else
        {
          console.log(e[0]);
          console.log("Conflict time schedule!");
          alert("Conflict"); 
          return false;      
        }
      }
      });

    }

    }

    alert(message);

    });


function reserveRoom(){

$.ajax({
    type:'post',
    url: 'reserveroom.php',
    data: { trtitle : $("#trtitle").val(),
    from : $("#from").val(),
    to : $("#to").val(),
    datetimepicker : $("#datetimepicker").val(),
    ninjaday : $("#ninjaday").val(),
    ninjaroom : $("#ninjaroom").val() },
    dataType: 'json'
    });

}