如果值匹配,则选中复选框并使用提交时的复选框值更新数据库

时间:2013-09-09 14:03:11

标签: php jquery mysql

我正在尝试检查数据库显示中的值复选框。我检查了不同的值并单击更新数据库的提交按钮,其中更新值是复选框选中的值。

这是我的代码:

    <?php
    include "database_connection.php"; 
    $cutomername = $_GET['username'];
    $productid = $_GET['userid'];
    $cust_id = $_GET['custid'];
    $productid_arr = explode(',' , $productid);
    ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title> <?php echo $cutomername;?></title>
    </head>

    <body>

    <form method="post" name="checkboxForm">
    <?php

    $query_flags = "select * from products";
    $row_flags=mysql_query($query_flags); 
    $i=0;

    while ($row = mysql_fetch_array($row_flags)){

           $product_id = $row['product_id'];
           $product= $row['product'];
           if($productid_arr[$i] ==$row['product_id']) 
           {
              $check = 'checked="checked"';
           } else{
              $check = '';
           }
           if(in_array($row['product_id'], $chvalues))
           {
              echo  "<input   type=\"checkbox\" name=\"checkbox[]\"  id=\"$product_id\" value='" . $row['product_id'] . "' $check />";
           } else{
              echo  "<input  type=\"checkbox\" name=\"checkbox[]\"  id=\"$product_id\" value='" . $row['product_id'] . "' $check/>";
           }
    echo $row['product'];
    echo "<hr />"; 
    $i++;
    }   
    ?>  
    <input class="submit" type="submit" value="Submit" name="submit">   

    <?php
    $chvalues = array();
    if(isset($_POST['checkbox']))
    {
       foreach($_POST['checkbox'] as $ch => $value)
       {
       $chvalues[] = $value;
       }
    }

    $des_prod_id = implode(',' , $chvalues);
    $query = mysql_query("UPDATE customer SET product_id = '$des_prod_id'  where  ID = '$cust_id'");
   ?>

</form>
</body>
</html>

2 个答案:

答案 0 :(得分:0)

更改此行:

 $query = mysql_query("UPDATE customer SET product_id = $products where  customer_name = $cutomername");

为:

$query = mysql_query("UPDATE customer SET product_id = $value where  customer_name = $cutomername");

$products应为$value,因为您在foreach循环中迭代并将每个元素分配给此变量。

答案 1 :(得分:0)

最后我解决了这个问题

这是我的代码:

<?php
    include "database_connection.php"; 
    $cutomername = $_GET['username'];
    $productid = $_GET['userid'];
    $cust_id = $_GET['custid'];
    $productid_arr = explode(',' , $productid);


 if(isset($_POST['submit']))
     {
     $productid_arr = array();
     foreach($_POST['checkbox'] as $ch => $value)
     {
        $productid_arr[] = $value;
     }

    $des_prod_id = implode(',' , $productid_arr);

    $query = mysql_query("UPDATE customer SET product_id = '$des_prod_id'  where  ID = '$cust_id'");
    }

    ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title> <?php echo $cutomername;?></title>
    </head>

    <body>

    <form method="post" name="checkboxForm">
    <?php

    $query_flags = "select * from products";
    $row_flags=mysql_query($query_flags); 
    $i=0;

    while ($row = mysql_fetch_array($row_flags)){

           $product_id = $row['product_id'];
           $product= $row['product'];
           if(in_array($product_id, $productid_arr)) 
           {
            $check = 'checked';
            } else{
            $check = '';
            }
        echo  "<input   type=\"checkbox\" name=\"checkbox[]\"  id=\"$product_id\" value='" . $row['product_id'] . "' $check />";
        echo $row['product'];
    echo "<hr />"; 
    $i++;
    }   
    ?>  
    <input class="submit" type="submit" value="Submit" name="submit">   

</form>
</body>
</html>