2011-06-18 67 views
-2

我有这样一个值:检查选择框,当值=等价值

$brands = "1,2,3,4,5"

,我有这样的:

<input type="checkbox" name="brand[]" value="<?php print"$brand_id"; ?>" /><?php print"$brand_id"; ?> 

我想写源,所以当$brand_id是选中的$brands复选框之一表示打印“已检查”;

$品牌是可变的,由PHP

+5

至少试着去做。 –

回答

1

这将输出你有每个品牌<input>并追加checked="checked"任何选定的。

$selected = array(2, 5); 
$brands = array(1, 2, 3, 4, 5); 

foreach ($brands as $brand) { 
    echo '<input type="checkbox" name="brand[]" value="'.$brand.'"'.(in_array($brand, $selected) ? ' checked="checked"' : '').'/>'."\n"; 
} 

如果$品牌和$选择是动态的(例如,从MySQL数据库),你可以这样做:

$brands = mysql_fetch_row('SELECT id FROM brand'); 
$selected = mysql_fetch_row("SELECT brand_id FROM user_brands WHERE user_id = '42'"); 

但不知道更多关于你的应用程序,我不能给出一个完整的回答。

+0

我怎么能改变阵列(2,5)阵列($品牌) 当我这样做,只是第一个文本框检查 –

+0

@ebad:阵列(1,2,3,4,5)是你的品牌数量有和数组(2,5)是你选择的品牌 – Gowri

+0

我明白,但品牌数量是动态的,必须从数据库中获得,而且数组(2,5)是动态的并从数据库中的其他表中获得,3,4,5也变为1,4,6,3或2,5变为1,4,6,3 –

1
<input type="checkbox" name="brand[]" value="<?php echo $brand_id.'" '; echo (in_array($brand_id, $brands))?"checked/>":"/>"; ?> 
1
$brands =array("1,2,3,4,5"); 
<?php foreach($brand as $value){ ?> 
<input type="checkbox" name="brand[]" value="<?php echo "$brand_id"; ?>"<?php ($brand_id==$value)?"checked":'';} /> 
<?php } ?>