2016-05-25 3 views
1

У меня есть следующий PHP-код, где я распечатать мой HTML и у меня есть переменная $ цена и еще $ numofguestsИзмените значение переменной на лету в зависимости от выбора Select

<?php 
echo '$' . $price ; 

$i = 1; 
//This print values of number of guest for example: 1,2,3,4 
echo 'Select Number of Guests'; 
echo '<select name="numberofguests">'; 
while ($i <= $numofguests): 
     echo $i; 
    echo '<option value="' .$i. '">' .$i. '</option>'; 
     $i++; 
endwhile; 
echo '</select>'; 
?> 

Как мог Я распечатываю «на лету» общую цену в зависимости от выбора пользователя?

Пример: допустим, что $ цена = $ 5, и что количество вариантов гостя являются: 1,2,3

Так по умолчанию Количество гостей будет 1 и общая стоимость = $ 5

Но если пользователь выбирает Num гостя = 2 Я хотел бы общую цену изменить до $ 10, и если Num гостя = 3 Я хотел бы общую цену, чтобы изменить $ 15

большое спасибо

ответ

2

Попробуйте это.

<div id="pricediv"></div> 
    <?php 
    $numofguests = 5; 
    $i = 1; 
    echo 'Select Number of Guests'."</br>"; 
    echo '<select name="numberofguests" onchange="total(this.value)">'; 
    while ($i <= $numofguests): 
      echo $i; 
     echo '<option value="' .$i. '">' .$i. '</option>'; 
      $i++; 
    endwhile; 
    echo '</select>'; 
    ?> 

    <script> 
    function total(guest){ 
    var price = guest*5; 
    document.getElementById("pricediv").innerHTML="Price for "+guest+" guests is $"+price; 
    } 

    </script> 
-1

использовать onChange событие выбора для запуска функции javascript, которая изменяется HTML, где вы печатаете общую цену. Чтобы быть более конкретным, мне нужно будет увидеть код HTML, в котором вы печатаете общую цену.

1

Ваш код PHP как:

# index.php 
<?php 
$i = 1; 
?> 
<select id="room-selector" name="numberofguests"> 
    <?php while ($i <= $numofguests): ?> 
    <option value="<?php echo $i; ?>"><?php echo $i; ?></option> 
    <?php $i++; ?> 
    <?php endwhile; ?> 
</select> 
<p>No. of guest selected : <span id="guest-count"></span></p> 

Сейчас в JavaScript:

$("#room-selector").change(function() { 
    var price = 5; // or var price = <?php echo $price; ?>; 
    $('#guest-count').text($(this).val() * price); 
}); 

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

Демо: JSBin

0

Итак, вы хотите использовать JavaScript, чтобы обновить ценник в клиенте. Вы можете создать простую функцию, которая вычисляет цену и отображает ее.

Вы можете иметь функцию выполнять всякий раз, когда изменения выберите список, добавив атрибут onchange к вашему <select>

Что-то вроде этого:

<?PHP 
    $price = 10; 
    $numofguests = 5; 

    $options=""; 

    while ($i <= $numofguests): 
     $options .= '<option value="' .$i. '">' .$i. '</option>'; 
     $i++; 
    endwhile; 
?> 

<html> 
    <p id="price"><?= $price; ?></p> 

    <select name="numberofguests" id="numberofguests" onchange="updatePrice()"> 
     <?= $options; ?> 
    </select> 

    <script> 
     function updatePrice(){ 
      // set the value of the JS price with the value from PHP 
      var price = <?= $price; ?>; 
      var qty = document.getElementById("numberofguests").value; 
      var totalPrice = price * qty; 

      var destination = document.getElementById("price"); 

      destination.innerHTML = totalPrice; 
     } 
    </script> 

</html>