2012-02-08 2 views
0

Так что у меня что-то вроде этого -Расчет цены с JQuery

3 сезонов и каждый отличается по ценам, так, например Сезон 1 - 1 апреля - 30 мая, цены будут 20 $ 1 октября - 15 декабря цены будут составлять 10 $ 1 июня - 1 августа, цены будут 50 $

Все цены рассчитаны на один день, например, если я снимаю что-то с 1 июня по 1 августа на 5 дней цена будет 250 $.

Мне нужно показать это в окне поля ввода как значение, но хорошо, я не уверен, как создать это с помощью JQuery.

Я вынимаю цены с помощью php и присваиваю его цене $ price. (люди могут выбирать из избранных, то, что они хотят зарезервировать, цены на каждый элемент различаются), когда они выбирают автомобиль, сначала ничего не появляется, но после этого они могут выбрать дату, и когда они это сделают, цена появится , Надеюсь, ты понял, что я думаю.

+3

Что у вас есть ou got, который не работает? – alex

+0

Ну, в основном у меня есть только html, теперь я работаю над php, чтобы вытащить цены и назначить их переменным. – user1184908

+0

@ user1184909 Назначение значения php для переменной javascript выглядит следующим образом: var $ myJqueryVar = ""; , Вы можете оставить котировочные знаки, если значение должно быть числовым. – reporter

ответ

0

все, хотя все случаи не обрабатываются в этом примере, но и будет получить представление о том, чтобы рассчитать цену

$('select').live("change",function(){ 
       month_price = $('#start_date_month').val(); 

       price = ($('#start_date_month option[value="'+month_price+'"]').attr('price')); 

       startday = $('#start_date_day').val(); 

       endday = $('#end_date_day').val(); 
       end_month = $('#end_date_month').val(); 
       if(endday > 15 && end_month==12) 
       { 
        price = $('#start_date_month option[value="1"]').attr('price'); 
       } 

       days = endday - startday; 
       $('#price').val(days*price); 

      }); 

и HTML код будет как этот

<select name="start_date_day" id="start_date_day" > 
       <?php 
       for ($d = 1; $d < 32; $d++) { 
        echo '<option value="' . $d . '">' . $d . '</option>'; 
       } 
       ?> 
      </select> 
      <select name="start_date_month" id="start_date_month"> 
       <?php 
       for ($m = 1; $m < 13; $m++) { 
        if ($m == 4 || $m == 5) 
         echo '<option value="' . $m . '" price=20>' . $m . '</option>'; 
        elseif ($m == 6 || $m == 7) 
         echo '<option value="' . $m . '" price=50>' . $m . '</option>'; 
        elseif ($m == 10 || $m == 11 || $m == 12) 
         echo '<option value="' . $m . '" price=10>' . $m . '</option>'; 
        else 
         echo '<option value="' . $m . '" price=5>' . $m . '</option>'; 
       } 
       ?> 
      </select> 
      <select name="start_date_year" id="start_date_year"> 
       <?php 
       for ($i = 2012; $i < 2020; $i++) { 
        echo '<option value="' . $i . '">' . $i . '</otpion> '; 
       } 
       ?> 
      </select> 
      <select name="end_date_day" id="end_date_day"> 
       <?php 
       for ($d = 1; $d < 32; $d++) { 
        echo '<option value="' . $d . '">' . $d . '</option>'; 
       } 
       ?> 
      </select> 
      <select name="end_date_month" id="end_date_month"> 
       <?php 
       for ($m = 1; $m < 13; $m++) { 
        echo '<option value="' . $m . '">' . $m . '</option>'; 
       } 
       ?> 
      </select> 
      <select name="end_date_year" id="end_date_year"> 
       <?php 
       for ($i = 2012; $i < 2020; $i++) { 
        echo '<option value="' . $i . '">' . $i . '</otpion> '; 
       } 
       ?> 
      </select> 
      <input type="text" name="price" id="price"/> 
+0

Проверит это позже сегодня. Я видел, что у вас есть заявление в JQuery о днях, и я вспомнил, что мне нужно проверить, так как люди могут принимать предметы не только в один сезон, но и в два сезона, а затем это означает, что цены могут измениться.Например, они могут взять товар с 20 августа по 10 сентября, а это означает, что 11 дней будут с высокой ценой сезона и 10 дней будут с низкой ценой за сезон, можете ли вы дать мне пример чего-то подобного, если он не включен ? – user1184908

0

Здесь я показал один обработанный случай в течение месяца дебата до 15 - дата начала, а дата окончания - после 15, так какая будет цена

$(document).ready(function() { 
      $('select').live("change",function(){ 
       month_price = $('#start_date_month').val(); 

       price = ($('#start_date_month option[value="'+month_price+'"]').attr('price')); 

       startday = $('#start_date_day').val(); 

       endday = $('#end_date_day').val(); 
       end_month = $('#end_date_month').val(); 
       if(startday <15 && endday > 15 && month_price == 12 && end_month==12){ 
        enddateprice = $('#start_date_month option[value="1"]').attr('price'); 
        actualprice = ((16-startday)*price) + ((endday-16)*enddateprice); 
       } 
       else if(endday > 15 && end_month==12) 
       { 
        days = endday - startday; 
        price = $('#start_date_month option[value="1"]').attr('price'); 
        actualprice = days*price; 
       }else{ 
        days = endday - startday; 
        actualprice = days*price; 
       } 


       $('#price').val(actualprice); 

      }); 
Смежные вопросы