当数组mysql查询中的复选框值时检查php表单?

Posted

技术标签:

【中文标题】当数组mysql查询中的复选框值时检查php表单?【英文标题】:Php form checked when the checkbox value in array mysql query? 【发布时间】:2016-04-02 04:58:08 【问题描述】:

我在我的数据库中拥有和价值。来电type

我的 html 表单中有 2 个复选框。

<input name="barea[]" type="checkbox" id="barea[]" value="1" $cbvar/>Normal 
<input name="barea[]" type="checkbox" value="2" id="barea[]" $cbvar/>Gold

我将数据存储为以下代码:

$checkboxvar = implode(',', $_GET['barea']);

所以我的表格数据如下:

+-------+-----------+
| ID    | type      |
+-------+-----------+
| 1     | 1         |
| 2     | 1,2       |
| 3     | 2         |
| 4     | 1,2       |
| 5     | 1,2       |
| 6     | 1         |
+-------------------+

当用户编辑此数据时,当barea[] value存在in_arraymysql_query中时,如何checked复选框?

我在我的 php 文件中尝试以下编码:

$checkbox = explode(',',$row['type']);
if (in_array($_GET['barea'],$checkbox))
    $cbvar = "checked=\"checked\"";
else
    $cbvar = '';

在我的html中

<input name="barea[]" type="checkbox" id="barea[]" value="1" $cbvar/>Normal 
<input name="barea[]" type="checkbox" value="2" id="barea[]" $cbvar/>Gold

但它不起作用,我想问题可能出在if (in_array($_GET['barea'],$checkbox))

那么如何改进我的编码,或任何其他好的编码建议?谢谢。

【问题讨论】:

你在$_GET['barea'] 中获得了什么价值?? 【参考方案1】:

=>试试这个代码我希望它有用。

// html页面..

<label>Select State</label><br>
<?php 
$allgroup = mysql_query("SELECT * FROM  state");
$flag=false;
while($state_list = mysql_fetch_array($allgroup))

   $parr=explode(',',$er['state_id']);
   $size = sizeof($parr);
   for($i=0;$i<$size;$i++)  
     if($parr[$i]==$state_list['id'])                               
        $flag=true;
      
       

  if($flag==true) 
    ?>
    <input  type='checkbox' name='state[]' style="margin-left:5px;" value="<?php echo $state_list['id']; ?>" checked  > <?php echo $state_list['name']; ?> <br>
    <?php
    $flag=false;
   else  
    ?>
    <input  type='checkbox' name='state[]' style="margin-left:5px;" value="<?php echo $state_list['id']; ?>"     > <?php echo $state_list['name']; ?> <br>
    <?php
    

?>

// php代码..

<?php
$states="";
$i=0;
foreach( $_POST['state'] as $selected) 
   echo sizeof($_POST['state']);
   if($i==sizeof($_POST['state'])-1) 
       $states = $states.$selected;
    else 
     $states = $states.$selected.",";
   
   $i++;

?>

【讨论】:

【参考方案2】:

别忘了清理$_POST,最好不要直接访问 POST 超全局变量。

+1 用于在使用变量之前对其进行初始化 :)

【讨论】:

以上是关于当数组mysql查询中的复选框值时检查php表单?的主要内容,如果未能解决你的问题,请参考以下文章

当当前输入等于数组内的值时,Laravel 验证 required_if(带有输入文本的复选框)

PHP:如何存储和复选框值并更新它们

如何使用 PHP 将复选框的值传递给 mySQL 数据库?

使用 jquery 检查 php 数组中的复选框所需的帮助

django 表单:如何检查模板中的复选框状态

复选框和检查Datatable Jquery PHP Mysql中的所有功能