【问题标题】:How to get values of selected dropdown box and insert to database?如何获取选定下拉框的值并插入数据库?
【发布时间】:2015-03-23 07:34:00
【问题描述】:

我刚刚创建了一个数量下拉框,唯一的事情是当点击添加购物车按钮时,下拉框的数量或选择的值没有插入到表名购物车中,列数量请帮忙..下面是来自的代码functions.php 和 product.php

<div id="products_box">
        <?php

 $get_pro = "select * from products ";
 $run_pro = mysqli_query($con, $get_pro);
 while($row_pro=mysqli_fetch_array($run_pro)){
    $pro_id = $row_pro['product_id'];
    $pro_cat = $row_pro['product_cat'];
    $pro_brand = $row_pro['product_brand'];
    $pro_title = $row_pro['product_title'];
    $pro_price = $row_pro['product_price'];
    $pro_image = $row_pro['product_image'];
    $pro_qty = $row_pro['product_qty'];
    echo "
        <div id='single_product'>
        <h4>$pro_title</h4>
        <img src='admin_area/product_images/$pro_image' width='180' height='80' />
        <p><b> Php $pro_price.00</b></p>
        <a href='details.php?pro_id=$pro_id' style='float:left;'>Details</a>
        <select name='quantity'>";
        for($i=1;$i<=$pro_qty;$i++) {
         echo  "<option value=$i>$i</option>";
          }
        echo  "</select>

        <a href='index.php'?pro_id=$pro_id'><button style='float:right'>Add to Cart</button></a>
        </div>
        ";

}
?>
        </div>


function cart(){
if(isset($_GET['add_cart'])){
    global $con;
    $ip = getIp();
    $pro_id = $_GET['add_cart'];
    $pro_qty = $_POST['quantity'];
    $check_pro = "select * from cart where ip_add='$ip' AND p_id='$pro_id'";
    $run_check = mysqli_query($con, $check_pro);
    if(mysqli_num_rows($run_check)>0){
        echo ""; //refresh or do nothing
    }
    else {
    $insert_pro = "insert into cart(p_id,ip_add,qty) values ('$pro_id','$ip','$pro_qty')";
    $run_pro = mysqli_query($con, $insert_pro);
    echo "<script>window.open('index.php','_self')</script>";
    }

} }

【问题讨论】:

  • 你能试试这个 echo "";将其替换为 echo "";
  • 值显示在下拉框中,问题是获取选定的值..
  • @ReniDelaCruzCalonge 看到你没有使用 sumbit 按钮来传递你的表单值,你正在使用 href 它不会携带表单值,
  • 循环内容是否属于表单?对于您的情况,如果您想从服务器端的请求中获取数据,这里有三种方法 1.via form(post/get) 2.via href 方式 3.via ajax 方式。所以请告诉我你用的是哪种方式?我不知道你为什么在服务器端同时使用 $_GET 和 $_POST。@ReniDelaCruzCalonge

标签: php mysql


【解决方案1】:

你可以试试这个

<div id="products_box">
        <?php

 $get_pro = "select * from products ";
 $run_pro = mysqli_query($con, $get_pro);
 while($row_pro=mysqli_fetch_array($run_pro)){
    $pro_id = $row_pro['product_id'];
    $pro_cat = $row_pro['product_cat'];
    $pro_brand = $row_pro['product_brand'];
    $pro_title = $row_pro['product_title'];
    $pro_price = $row_pro['product_price'];
    $pro_image = $row_pro['product_image'];
    $pro_qty = $row_pro['product_qty'];
    echo "
        <form method='post' action='index.php'>
        <input type='hidden' value= '".$pro_id."' name ='pro_id' />
        <div id='single_product'>
        <h4>$pro_title</h4>
        <img src='admin_area/product_images/$pro_image' width='180' height='80' />
        <p><b> Php $pro_price.00</b></p>
        <a href='details.php?pro_id=$pro_id' style='float:left;'>Details</a>
        <select name='quantity'>";
        for($i=1;$i<=$pro_qty;$i++) {
         echo  "<option value=$i>$i</option>";
          }
        echo  "</select>

        <input type='submit' name='add' value='Add to Cart'>
        </div>
        </form>
        ";

}
?>
        </div>


function cart(){
if(isset($_GET['add_cart'])){
    global $con;
    $ip = getIp();
    $pro_id = $_POST['pro_id'];
    $pro_qty = $_POST['quantity'];
    $check_pro = "select * from cart where ip_add='$ip' AND p_id='$pro_id'";
    $run_check = mysqli_query($con, $check_pro);
    if(mysqli_num_rows($run_check)>0){
        echo ""; //refresh or do nothing
    }
    else {
    $insert_pro = "insert into cart(p_id,ip_add,qty) values ('$pro_id','$ip','$pro_qty')";
    $run_pro = mysqli_query($con, $insert_pro);
    echo "<script>window.open('index.php','_self')</script>";
    }
    }
    }

【讨论】:

  • 我现在有两个按钮
  • 在以前的情况下,您没有提交表单,而是重定向了表单。我发布的答案在我身边工作正常。您是否尝试过在 index.php 上打印输入值?
  • 顺便说一句,我应该将 if(isset($_GET['add_cart'])){ 更改为 POST 吗?
  • 请去掉基于@bablu代码的if(isset($_GET['add_cart']))判断,重新测试。
猜你喜欢
  • 2016-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多