Php 如何获取所选下拉框的值并插入数据库?

Php 如何获取所选下拉框的值并插入数据库?,php,mysql,Php,Mysql,我刚刚创建了一个数量下拉框,唯一的事情是当点击添加购物车按钮时,数量或下拉框的选定值没有插入到表名购物车中,列为“数量请帮助…”。。下面是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

我刚刚创建了一个数量下拉框,唯一的事情是当点击添加购物车按钮时,数量或下拉框的选定值没有插入到表名购物车中,列为“数量请帮助…”。。下面是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>";
    }


你能试试这个吗

<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>";
    }
    }
    }


你能试试这个回声“$i”吗;将其替换为回显“$i”;值显示在下拉框上,问题是获取所选值。@ReniDelaCruzCalonge请注意,您不是使用sumbit按钮传递表单值,而是使用href,它不会携带表单值,循环内容是否属于表单?对于您的情况,如果您希望从服务器端的请求中获取数据,这里有三种方法1.via form(post/get)2.via href way 3.via ajax way。那么请告诉我你用了哪种方法?我不知道您为什么在服务器端同时使用$\u GET和$\u POST。@ReniDelaCruzCalongei现在有两个按钮没有发生任何事情,没有插入任何按钮。。我试过这个。插入的不是a href='index.php'?pro_id=$pro_id',而是记录,但qty的值为0。在上一种情况下,您没有提交表单,而是重定向表单。我得到的答复是,我的工作很好。您是否尝试过在index.php上打印输入值?顺便问一句,我是否应该更改if(isset($\u GET['add\u cart']){to POST?请删除基于@bablu代码的if(isset($\u GET['add\u cart'])判断并再次测试。