我有一个包含多行和多列的页面。
因此,当用户登录时,如果后端有任何条目,则应显示在前端。显示,如果后端表中的值为1,则如果0位于后端,则应取消选中。
{$i=0}
{foreach from=$last7days item=date}
<tr>
<td><b> {$date}</b><input type='hidden' name='date[]' value ='{$date}'></td>
<td><input type='checkbox' name='BREAKFAST[]' value='1' ><input type='hidden' name='BREAKFAST[]' value='0'></td>
<td><input type='checkbox' name= 'LUNCH[]' value='1'><input type='hidden' name= 'LUNCH[]' value='0'></td>
<td><input type='checkbox' name= 'EVENING[]' value='1'><input type='hidden' name= 'EVENING[]' value='0'></td>
<td><input type='checkbox' name= 'DINNER[]' value='1'><input type='hidden' name= 'DINNER[]' value='0'></td>
<td><input type='checkbox' name= 'MIDNIGHT[]' value='1'><input type='hidden' name= 'MIDNIGHT[]' value='0'></td>
</tr>
{/foreach}
对于php: -
$show_details = mysql_query("select id,user,date,BREAKFAST,LUNCH,EVENING,DINNER,MIDNIGHT,timeUpdate from phpgroupware_new.foodPlan
user='$name'");
表: -
mysql> select * from foodPlan; +----+------------+------------+-----------+-------+---------+--------+----------+---------------------+ | id | user | date | BREAKFAST | LUNCH | EVENING | DINNER | MIDNIGHT | timeUpdate | +----+------------+------------+-----------+-------+---------+--------+----------+---------------------+ | 1 | monisha.md | 2015-03-07 | 1 | 1 | 1 | 1 | 1 | 2015-03-07 11:43:45 | | 2 | monisha.md | 2015-03-08 | 0 | 0 | 0 | 0 | 0 | 2015-03-07 11:43:45 | | 3 | monisha.md | 2015-03-09 | 0 | 0 | 0 | 0 | 0 | 2015-03-07 11:43:45 | | 4 | monisha.md | 2015-03-10 | 0 | 0 | 0 | 0 | 0 | 2015-03-07 11:43:45 | | 5 | monisha.md | 2015-03-11 | 0 | 0 | 0 | 0 | 0 | 2015-03-07 11:43:45 | | 6 | monisha.md | 2015-03-12 | 0 | 0 | 0 | 0 | 0 | 2015-03-07 11:43:45 | | 7 | monisha.md | 2015-03-13 | 0 | 0 | 0 | 0 | 0 | 2015-03-07 11:43:45 | | 8 | admin | 2015-03-07 | 1 | 1 | 0 | 0 | 0 | 2015-03-07 12:35:57 | | 9 | admin | 2015-03-08 | 1 | 1 | 0 | 0 | 0 | 2015-03-07 12:35:57 | | 10 | admin | 2015-03-09 | 1 | 1 | 0 | 0 | 0 | 2015-03-07 12:35:57 | | 11 | admin | 2015-03-10 | 1 | 1 | 0 | 0 | 0 | 2015-03-07 12:35:57 | | 12 | admin | 2015-03-11 | 1 | 1 | 0 | 0 | 0 | 2015-03-07 12:35:57 | | 13 | admin | 2015-03-12 | 1 | 1 | 0 | 0 | 0 | 2015-03-07 12:35:57 | | 14 | admin | 2015-03-13 | 1 | 1 | 0 | 0 | 0 | 2015-03-07 12:35:57 | +----+------------+------------+-----------+-------+---------+--------+----------+---------------------+ 14 rows in set (0.00 sec)
答案 0 :(得分:0)
试试这个,
<input type="checkbox" <?php
echo($breakfast == 1)? 'checked="checked"' : ''?> name="BREAKFAST[]" value="<?php echo $breakfast; ?>" >
$ breakfast是来自for循环的db的值。
答案 1 :(得分:0)
我认为您应该删除定义不同值0的其他隐藏输入,并且只包含值为1的第一个输入。也许这可以帮助您启动,除非我误解了您的问题
if (isset($_POST['BREAKFAST'])
{
$breakfast = $_POST['BREAKFAST'];
foreach($breakfast as $item)
if($item == 1) //that means box is checked
// what do you want to do
else
// what you want to do if box is not checked
}
你实际上并不需要使用数组作为输入,只需一个变量就可以了