【问题标题】:Selected value from dropdown menu doesn't select when click on button in php单击php中的按钮时,下拉菜单中的选定值未选择
【发布时间】:2019-03-28 18:19:18
【问题描述】:

我从两个表“pizza”和“size”中选择数据。在“pizza”表中,我们在“size”表“pizza_id、size_id、size、price”中有一个字段名称“pizza_id、pizza_name、pizza_img”。当我们选择第一个披萨时,“尺寸”表中的尺寸是小,中,大。它显示在下拉菜单中。问题是当我们点击披萨的第一个尺寸(小)并点击按钮时表明您正在选择最后(大)尺寸的披萨。每次我选择任何尺寸的披萨时,都表明您正在选择大(size_id:3)尺寸的披萨。所以我不知道如何解决这个问题。如果有人可以理解我的问题,而不是请帮助我,我被严重卡住了。谢谢你

  $query = "SELECT * FROM pizza";
  $run = mysqli_query($con, $query);

  while($row=mysqli_fetch_array($run)){

        $pizza_id = $row['pizza_id'];
        $pizza_name = $row['pizza_name'];
        $pizza_img = $row['pizza_img'];

  echo "<div class='pizza_details'>
  <img src='admin/img/$pizza_img' width='200px' height='150px'  
  id='profile-image' />
  <div class='desc'>
  <ul>
  <li><span style='color:yellow;'>Name</span> : $pizza_name</li>
  </ul>";


  $q = "SELECT * FROM size where pizza_id='$pizza_id'";
  $r = mysqli_query($con, $q);

  echo "<select name='size'>";

  while ($new=mysqli_fetch_array($r)){

          $size_id = $new['size_id']; 
          $size = $new['size'];
          $price = $new['price'];

   echo"<option value='$size_id'>$size</option>";

   }//End-while loop

   echo"</select>
   <ul><li>
   <a href='pizza.php?add_cart=$pizza_id&size_id=$size_id'>Add to Cart</a>
   </li></ul>
  </div>
  <div class='clear'></div>
  </div>";

  }//End-While Loop

【问题讨论】:

  • 你是如何得到 $pizza_id 的尺寸的?在这个流程中,这真的是你的代码全部在 php 中吗?您没有接受任何用户输入。在您的“添加到购物车”链接中,您基本上已经将 Pizza_id 和 size_id 硬编码为循环中的最后一个值。
  • 基本上 $pizza_id 在比萨表中是主键,在大小表中是外键。所以在大小表中,$pizza_id 存储在三行中。 "size" 表中 $pizza_id 的所有尺寸都是相同的,但它的 $size_id 不同,当我们点击添加到购物车链接时,它会获取选定的尺寸值并发送到购物车。
  • 我了解数据库。但是您没有在任何地方收集用户的选择/输入。流程应该是显示比萨饼列表,当用户选择比萨饼时,您提交值(通过表单或 ajax)并使用选定的比萨饼 id 来决定大小,然后动态创建 URL 以添加到当前选择的比萨饼 id 的购物车和尺寸标识。您没有收集和提交任何用户操作。只是一个带有硬编码最后一个 ID 的链接。
  • 非常感谢,希望您的指导对我有用。

标签: php mysqli drop-down-menu while-loop


【解决方案1】:
    <form action="" method="get" enctype="multipart/form-data">
    <input type="hidden" name="product_id" value="<?php echo $product_id; ?>">
    <select class="form-control" id="a_set_of_values" name="a_set_of_values" >

    <?php

      $q = "SELECT * FROM size WHERE product_id='$product_id'";
      $r = mysqli_query($con, $q);

      while($rows=mysqli_fetch_array($r)){
            $size_id = $rows['size_id'];
            $size = $rows['size']; 
            $price = $rows['price'];
    ?>

    <option value="<?php echo $size_id;?> & <?php echo $price; ?>"><?php echo $size;?> : Rs <?php echo $price;?></option>

    <?php } ?>

    </select>
    <button class="read_mor_btn"  type="submit" name="add_cart" title="Add to Cart"><i class="fa fa-shopping-cart"></i>Add to Cart</button>

    </form> 

现在从上面获取所有这些值(product_id、size_id、price),并使用explode函数在选择选项中获取多个值。

    //Pick these values
    if(isset($_POST['add_cart'])){

    $product_id= $_POST['product_id'];

    $explode_fun = $_POST['a_set_of_values'];
    $new_data = explode(' ', $explode_fun);
    $size_id = $new_data[0];
    $price = $new_data[2];    
    }

    ?>      

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-19
    • 1970-01-01
    • 1970-01-01
    • 2012-10-27
    • 2013-08-18
    • 1970-01-01
    • 2011-02-10
    • 2019-12-12
    相关资源
    最近更新 更多