2017-01-01 4 views
1

この条件に問題があります。条件内の "(numofeggs < totalsm)"は実行されるだけです。それ以外の場合、「numofeggs < totalsm」を除くすべての変数は機能しません。どんなやり方もありますか?ajaxスクリプト内でif-else条件を実装する

$(document).ready(function() { 
    displayDataSM(); 
    displayTotaleggs(); 
    $("#btn-input").click(function() { 
    var numofeggs = $("#numofeggs").val(); 
    var size = $("#size").val(); 
    var price = $("#price").val(); 
    var farmername = $("#farmername").val(); 
    var totalsm = "<?php echo $totalSmall ?>"; 

    if ((numofeggs < totalsm) && (size && price && farmername)) { 
     $.ajax({ 
     url: "ajaxeggsout.php", 
     type: "POST", 
     async: false, 
     data: { 
      "btn-input": 1, 
      "numofeggs": numofeggs, 
      "size": size, 
      "price": price, 
      "farmername": farmername 
     }, 
     success: function(data) { 
      displayDataSM(); 
      displayTotaleggs(); 
      $("#numofeggs").val(''); 
     } 
     }) 
    } 
    return false; 
    }); 
}); 
+0

を((numofeggs 0 && price> 0 && farmername.length> 0)) – Satya

+0

私のプログラムでは、(numoffeggs

+0

@Satya '0'と' '" 'はJSの偽の値です。 – Barmar

答えて

2

入力を数字に変換する必要があります。数字0は偽物ですが、文字列"0"は真実です。 <と比較すると、数字は文字列とは異なる動作をします(例:5 < 12はtrueですが、"5" < "12"はfalseです)。

入力には、​​を使用して数値に変換します。そして、PHPから来る変数については、引用符で囲まないでください。

そう:

var numofeggs = Number($("#numofeggs").val()); 
var size = Number($("#size").val()); 
var price = Number($("#price").val()); 
var farmername = $("#farmername").val(); 
var totalsm = <?php echo $totalSmall ?>; 
+0

「<」記号を削除すると機能しています。しかし、(numofeggs

+0

どこにこの条件(numofeggs

+0

私の更新された答えを見て、あなたはもっと多くのものを数字に変換する必要があります。 – Barmar

関連する問題