2015-11-03 3 views
-2

Я делаю расчет, используя if else в Javascript.if else не работает должным образом в Javascript

Ниже HTML:

<b>Select Number of Rooms:</b> 
      <select name="rooms" id="room" required> 
      <option value="8">Rooms</option> 
      <option value="1">1</option> 
      <option value="2">2</option> 
      <option value="3">3</option> 
      <option value="4">4</option> 
      </select><br><br> 
      <div id="paxx"> 

      <div id="first"> 
      <b>Room 1 - Adult:</b> 
      <select name="Adults" id="Adult" required> 

      <option value="0">Adult</option> 
      <option value="1">1</option> 
      <option value="2">2</option> 
      <option value="3">3</option> 

      </select><br><br> 
      </div> 
      <div id="firsts"> 
      <b>Room 1 - Child:</b> 
      <select name="child" id="child"> 
      <option value="0">Child</option> 
      <option value="1">1</option> 
      <option value="2">2</option> 
      </select><br><br> 
      </div> 
      <div id="Adt1"> 
      <b>Room 2 - Adult:</b> 
      <select name="Adult1" id="Adult1"> 
      <option value="0">Adult</option> 
      <option value="1">1</option> 
      <option value="2">2</option> 
      <option value="3">3</option> 
      </select><br><br> 
      </div> 
      <div id="chd1"> 
      <b>Room 2 - Child:</b> 
      <select name="child1" id="child1"> 
      <option value="0">Child</option> 
      <option value="1">1</option> 
      <option value="2">2</option> 
      </select><br><br> 
      </div> 
      <div id="Adt2"> 
      <b>Room 3 - Adult:</b> 
      <select name="Adult2" id="Adult2"> 
      <option value="0">Adult</option> 
      <option value="1">1</option> 
      <option value="2">2</option> 
      <option value="3">3</option> 
      </select><br><br> 
      </div> 
      <div id="chd2"> 
      <b>Room 3 - Child:</b> 
      <select name="child2" id="child2"> 
      <option value="0">Child</option> 
      <option value="1">1</option> 
      <option value="2">2</option> 
      </select><br><br> 
      </div> 
      <div id="Adt3"> 
      <b>Room 4 - Adult:</b> 
      <select name="Adult3" id="Adult3"> 
      <option value="0">Adult</option> 
      <option value="1">1</option> 
      <option value="2">2</option> 
      <option value="3">3</option> 
      </select><br><br> 
      </div> 
      <div id="chd3"> 
      <b>Room 4 - Child:</b> 
      <select name="child3" id="child3"> 
      <option value="0">Child</option> 
      <option value="1">1</option> 
      <option value="2">2</option> 
      </select><br><br> 
      </div> 
      </div> 

часть Javascript, как показано ниже:

<script> 
    $("#paxx").change(function(){ 
    <?php $single = $row['single']; ?> 
    var single = "<?php echo $single; ?>"; 
    <?php $double = $row['doubl']; ?> 
    var doubl = "<?php echo $double; ?>"; 
    var price = ""; 

    var $sumDisplay = $('#total'); 
    var t1 = parseInt($("#Adult").val()); 
    var t2 = parseInt($("#Adult1").val()); 
    var t3 = parseInt($("#Adult2").val()); 
    var t4 = parseInt($("#Adult3").val()); 
    var t5 = parseInt($("#child").val()); 
    var t6 = parseInt($("#child1").val()); 
    var t7 = parseInt($("#child2").val()); 
    var t8 = parseInt($("#child3").val()); 



    { 

    if(parseInt($("#Adult").val()) == 1 || parseInt($("#Adult1").val()) == 1 || parseInt($("#Adult3").val()) == 1 || parseInt($("#Adult2").val()) == 1) 
    { 
     var total2 = t1 + t2 + t3 + t4; 
     var price = total2 * single; 

    } 



    if(parseInt($("#Adult").val()) == 2 || parseInt($("#Adult1").val()) == 2 || parseInt($("#Adult3").val()) == 2 || parseInt($("#Adult2").val()) == 2) 
    { 
     var total12 = t1 + t2 + t3 + t4; 
     var price = total12 * doubl; 

    } 



    if(parseInt($("#Adult").val()) == 3 || parseInt($("#Adult2").val()) == 3 || parseInt($("#Adult3").val()) == 3 || parseInt($("#Adult1").val()) == 3) 
    { 
     var total21 = t1 + t2 + t3 + t4; 
     var price = total21 * doubl; 
    } 



    if(parseInt($("#Adult").val()) == 1 && parseInt($("#child").val()) == 1) 
    { 
     var total2 = t1 + t5 ; 
     var price = total2 * doubl; 

    } 

} 

    $sumDisplay.text(price); 



}); 
      </script> 

Теперь оформить когда я выбираю 1 взрослый и 1 ребенок в первой комнате, она дает мне правильную цену. И когда я добавляю еще одну комнату и добавляю 1 чел, она дает мне цену

3 * doubl;

Но если вы посмотрите на мои, если условия он должен работать как этот

2 * DOUBL + 1 * одинарный;

Он добавляет другое лицо в последнее утверждение if и не смотрит сначала, если утверждение, когда во второй комнате добавляется 1 человек.

Пожалуйста, проверьте и предложите мне решение и укажите проблемы, если они есть.

+0

Есть 4 заявления. Я не вижу никого из них – nikhil

+2

a) Какие ошибки вы получаете, и б) публикуете отображаемый HTML. Нам не нужен PHP. – j08691

+0

Обратите внимание, что 'parseInt' также должен быть передан в radix, иначе результаты будут неожиданными:' parseInt (n, 10) '. Я не говорю, что это проблема, но стоит быть в безопасности. – somethinghere

ответ

0

Я хотел бы помочь, но, честно говоря, я не могу понять, как именно вы пытаетесь рассчитать свои цены. Вы используете только одно из дочерних полей, чтобы рассчитать цены для вашего четвертого случая, что справедливо только в том случае, если у вас есть один взрослый и один ребенок в комнате один. Если бы вы могли объяснить структуру ценообразования, которую вы пытаетесь абстрагироваться с помощью этого кода, я могу лучше сказать вам, где вы ошибетесь.

Например, ваш третий случай утверждает, что, если в одной комнате есть три взрослых, тогда общая сумма должна быть равна сумме всех взрослых во всех четырех комнатах раз в два. Если я не ошибаюсь, если у вас есть один взрослый в комнатах один, два, три и три взрослых в комнате 4, общая стоимость будет равна тому, что вы заплатили бы за двенадцать взрослых (12 X 2), независимо от количества детей.

+0

Когда я добавляю 1 ребенка и 1 взрослого в Комнату 1, это должно вызвать if (parseInt ($ ("# Adult"). Val()) == 1 && parseInt ($ (" #child "). val()) == 1) \t {\t \t \t var total2 = t1 + t5; \t \t var цена = всего2 * twinl; \t} Но когда я добавляю еще одну комнату и добавить 1 человека, то он должен вызвать первый IF –

+1

Я думаю, что вы должны отказаться от структуры у вас есть сейчас и объяснить нам, что график ценообразования. Лучшая структура, вероятно, будет проходить через каждую комнату, рассчитать цену комнаты в зависимости от количества взрослых/детей в каждой комнате, добавить ее к общей сумме, а затем рассчитать свои возможные скидки в зависимости от общего количества комнат. В противном случае похоже, что вам понадобится намного больше, если вы еще ничего не сделали, чем вы. Что делать, если в номере 4 есть один взрослый и трое детей? –

+0

Ценовой график: Если 1 человек в комнате, тогда будет взиматься разовая цена Если 2 или 3 человека (1 взрослый и 2 ребенка или 2 взрослых и 1 ребенок), тогда будет взиматься двойная цена (количество человек * двойное) –

Смежные вопросы