如何在 jQuery 的 if 语句中检查来自 AJAX 请求的结果的多个值


how to check multiple values of a result from ajax request in jquery's if statement

嗨,我有一个 ajax 请求,我正在通过

ajax 向 PHP 文件发送一些请求,并且该请求正在生成结果,到目前为止一切正常,但现在我想为我的结果保留一些验证。 我正在动态添加的表行上执行此操作,因此如果不满足验证,则不允许添加新行,但在验证后仍在添加行任何人都可以帮助解决我的问题吗,谢谢这是我的代码

  $("#savetodb").removeAttr("disabled");
  var vendor      = $("#sub_vendor_id"+rowcount+">option:selected").val();
  var product     = $("#prodid_"+rowcount).val();
  var productname = $("#prod_"+rowcount).val();
  var vouchdt     = $("#dateinfo").val();
  var qty         = $("#quantity_"+rowcount).val();
  var amt         = $("#amount_"+rowcount).val();
  $.get("../model/check_product_with_invoice_number.php", { invno : invoice, product : product, vendor : vendor, date : vouchdt, quantity : qty, amount : amt }, function (result) { 
        if(result == "") {
          alert(productname+" Does not exist for invoice number "+id);
          $("#savetodb").attr("disabled", "disabled");
       }
       if(result == 2) {
          alert("Quantity "+ qty +" for "+productname+" does not exist for invoice number "+id);
          $("#savetodb").attr("disabled", "disabled");
       }           
       if(result == 3) {
          alert("Amount "+amt +" For "+productname+" does not exist for invoice number "+id);
          $("#savetodb").attr("disabled", "disabled");
       }
if(result !=='' && result !==3 && result !==2){
$("#savetodb").removeAttr("disabled");
append_row('enable remove','',prods,unitid,unitcode);
}
});

这是我的PHP

$code     = mysql_real_escape_string($_GET["invno"]); 
$vendor   = mysql_real_escape_string($_GET["vendor"]); 
$product  = mysql_real_escape_string($_GET["product"]); 
$vouchdt  = mysql_real_escape_string($_GET["date"]);
$amt      = mysql_real_escape_string($_GET["amount"]);
$qty      = mysql_real_escape_string($_GET["quantity"]);

$chkquantity = mysql_query("SELECT * FROM `gc_procurement_daily_detail` WHERE quantity_procured='".$qty."'
                            AND product_id='".$product."' AND sub_vendor_id='".$vendor."'")or die(mysql_error());
if(mysql_num_rows($chkquantity)> 0){
$chkamt  = mysql_query("SELECT * FROM `gc_procurement_daily_detail` WHERE procured_detail_amount='".$amt."'
                        AND product_id='".$product."' AND sub_vendor_id='".$vendor."' AND quantity_procured='".$qty."'")or die(mysql_error());                            
if(mysql_num_rows($chkamt)>0){
$chkinvoice = mysql_query("SELECT a.*, b.* FROM `gc_procurement_daily_detail` a, `gc_procurement_daily_summary` b 
                           WHERE  a.sub_vendor_id='".$vendor."' AND a.product_id='".$product."' AND
                           a.quantity_procured='".$qty."' AND a.procured_detail_amount='".$amt."' AND
                           b.`date_of_invoice`='".$vouchdt."' AND b.invoice_number='".$code."' AND
                           a.`procurement_daily_summary_id`= b.procurement_daily_summary_id")or die(mysql_query());
$minv     = mysql_fetch_object($chkinvoice);
$fininv   = $minv->invoice_number;
if($code == $fininv){
   echo 1;  
   exit;
}else{
   echo '';
   exit;
}
}else{
   echo 3;      
   exit;
}
}else{
    echo 2;
    exit;   
}
好的,

只需扭曲双引号内的 ajax 条件

if(result !=='' && result !=="3" && result !=="2")

这对他们所有人来说都是如此。

因为这个答案已被选为最佳答案我建议结合其他想法,你应该把你的条件链起来

if(){
}else if(){
}

依此类推或使用

Switch (result){
case 1:
//Do logic of this case here
break;
case 2:
//Do logic of this case here
break;
}

因此,只要您的条件达到,您就可以退出执行

就这样。

对于 js 部分,你可以为此使用一个开关:

switch(result){
    case 2 : //error break;
    case 3 : //error break;
    case 4 : //error break;
    default: //save stuff break;
}

改用 switch 语句,如下所示:

switch(result){
    case '':
        alert(productname+" Does not exist for invoice number "+id);
        $("#savetodb").attr("disabled", "disabled");
    break;
    case '2':
        alert("Quantity "+ qty +" for "+productname+" does not exist for invoice number "+id);
        $("#savetodb").attr("disabled", "disabled");
    break;
    case '3':
        alert("Amount "+amt +" For "+productname+" does not exist for invoice number "+id);
        $("#savetodb").attr("disabled", "disabled");
    break;
    default:
        $("#savetodb").removeAttr("disabled");
        append_row('enable remove','',prods,unitid,unitcode);
    break;
}

您的结果可能以字符串而不是整数的形式返回,因此您可能需要用引号将数字括起来。