2016-05-25 9 views
1

Ich habe den folgenden PHP-Code, wo ich meine HTML drucken und ich habe eine Variable $ Preis und weitere numofguests $on the fly in Abhängigkeit von der Auswahl eines 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>'; 
?> 

Wie konnte Ich drucke spontan einen Gesamtpreis aus, der von der Benutzerauswahl abhängt.

Beispiel: sagen wir mal, dass $ Preis = $ 5 und die Zahl der Gäste Optionen sind: 1,2,3

So standardmäßig num von Gast sein wird 1 und Gesamtpreis = $ 5

aber wenn der Benutzer wählt num von Gast = 2 I den Gesamtpreis möchte $ 10 zu ändern, und wenn num von Gast = 3 I den Gesamtpreis möchte $ 15 zu ändern

Vielen Dank

Antwort

2

versuchen diese.

<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

Verwenden Sie eine onChange-Ereignis des Auswählens, um eine JavaScript-Funktion auszuführen, die sich ändert das HTML, in dem Sie den Gesamtpreis drucken. Um genauer zu sein, müsste ich den HTML-Code sehen, wo Sie den Gesamtpreis drucken.

1

Ihre PHP-Code wie:

# 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> 

Jetzt im javascript:

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

die Auswahldropdown bilden den Wert zu nehmen, wenn es Änderungen und den Wert in der Spanne setzen .

Demo: JSBin

0

So, möchten Sie Javascript verwenden, um das Preisschild auf dem Client zu aktualisieren. Sie können eine einfache Funktion erstellen, die den Preis berechnet und anzeigt.

Sie können die Funktion ausführen müssen, wenn die Auswahlliste Änderungen durch Hinzufügen des onchange Attribut zu Ihrem <select>

Etwas wie folgt aus:

<?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>