从组合框中选择值

Selecting values from a combobox

我有 2 个组合框。

<select name="ticketType">
        <option selected>Ticket type</option>
        <option value="55">Promo pass</option>
        <option value="65">Regular pass</option>
      </select>
      <select name="campingNumber">
        <option selected>Camping spots</option>
        <option value="0">0</option>
        <option value="30">1</option>
        <option value="50">2</option>
        <option value="70">3</option>
        <option value="90">4</option>
        <option value="110">5</option>
        <option value="130">6</option>
      </select>
      <p>Price: € <span id="price"></span></p>

我想做的是从两者中获取值并将它们相加,一切正常,但如果我 select 来自组合框的另一个值,它会继续加在一起到总数中。 这是我的jquery:

var price=0;
$(document).ready(
  function() {
    $('select[name=ticketType]').change(
      function(){
        price =price +  parseInt($(this).val());
        $('#price').text(price);
      }
      );
  }
   );
$(document).ready(
  function() {
    $('select[name=campingNumber]').change(
      function(){
        price =price +  parseInt($(this).val());
        $('#price').text(price);
      }
      );
  }
  );

这个值我想更新到数据库,门票一切正常,但对于露营号,价值是露营地的价格,0-6 的数字代表你买多少人一个露营地,如何将其添加到数据库中的 table? 对于数据库,我有以下 table:

person_nb (int 10)
price (int 10)

所以我想将露营号码的价值添加到价格中,并且在 person_nb 我想要露营号码组合框之间的价值。

$query2 = $conn-> prepare("INSERT INTO user_acc (email, ticket_price) VALUES (:email2, :ticket);"); 
$query2->bindParam(':email2', $email);' '$query2->bindParam(':ticket', $ticketType);
$query3 = $conn->prepare("INSERT INTO reservation (price, person_nb) VALUES (:price, :personNumber);"); 
$query3-> bindParam(':price', $campingPrice); 
$query3-> bindParam(':personNumber', $totalNumberOfPersons); 

这是查询,但对于 totalNumberOfPersons,我不知道如何获取值。例如'1'价格是30,人数应该是1。

您在不重置任何值的情况下继续添加到总数中,所以试试这个:

 var price=0;
 var pricex = 0;
 var pricey = 0;
    $(document).ready(
      function() {
        $('select[name=ticketType]').change(
          function(){
            pricex = parseInt($(this).val());
            price = pricex + pricey;
            $('#price').text(price);
          }
          );
      }
       );
    $(document).ready(
      function() {
        $('select[name=campingNumber]').change(
          function(){
            pricey = parseInt($(this).val());
            price = pricex + pricey;
            $('#price').text(price);
          }
          );
      }
      );

试试这个

var price;
$(document).ready(
 function() {
 $('select[name=ticketType]').change(
  function(){
   price=0;
    price =price +  parseInt($(this).val()) +  parseInt($('[name="campingNumber"]').val());
    $('#price').text(price);
  }
  );
  }
  );
 $(document).ready(
  function() {
   $('select[name=campingNumber]').change(
    function(){
      price=0;
    price =price +  parseInt($(this).val()) +  parseInt($('[name="ticketType"]').val());
    $('#price').text(price);
   }
   );
}
);