0

こんにちは、私は ajax を介して php ファイルにいくつかのリクエストを送信している ajax リクエストを持っています。リクエストは結果を生成しています。私は動的に追加されたテーブル行でこれを行っているので、検証が満たされていない場合、新しい行を追加することはできませんが、検証後でも行を追加しています

  $("#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;   
}
4

3 に答える 3

0

わかりました、二重引用符内で 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;

}

そのため、条件が達成されるたびに実行を終了するメリットがあります

それで全部です。

于 2013-10-23T08:25:53.770 に答える
0

js 部分では、これにスイッチを使用できます。

switch(result){
    case 2 : //error break;
    case 3 : //error break;
    case 4 : //error break;
    default: //save stuff break;
}
于 2013-10-23T08:26:10.450 に答える
0

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;
}

結果はおそらく整数ではなく文字列として返されるため、数値を引用符で囲む必要があります。

于 2013-10-23T08:26:40.993 に答える