我拥有并且在我的数据库中有价值。它致电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 |
+-------------------+
当用户编辑此数据时,checked
中barea[] value
存在in_array
时如何mysql_query
复选框?
我在我的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)){
上。
那么如何改进我的编码或任何其他好的编码建议呢?谢谢。
答案 0 :(得分:4)
=&gt;试试此代码我希望它有用。
// html page ..
<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 code ..
<?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++;
}
?>
答案 1 :(得分:0)
不要忘记清理$_POST
,直接访问POST超全局是一种很好的编码习惯。
+1用于在使用变量之前初始化变量:)