--为清楚起见进行了编辑。
数据库:
tblModule,包含可以启用或禁用的模块列表。 tblData,包含信任列表和它们启用的模块。这链接到tblData.M01 = tblModule.mod_key上的tblModule
PHP 页面从索引页面访问,并将变量lstModTrust传递给该页面,以限制从 tblData 返回的记录为单一信任。tblData.trust_key
运行一个查询qryModuleList,它返回所有模块的列表。这用于生成所有可用模块的表。每行显示模块名称tblModules.mod_name、模块代码 tblModules.mod_code和一个复选框。
qryModData将返回为单个信任启用的模块列表,并且需要在表中勾选相应的复选框。
然后,此页面将用于启用和禁用信任的模块。如果一个模块未勾选,则该条目将从tblData中删除,如果勾选,则将插入一个条目,如果没有更改,则 DB 中没有更改。
目前我无法根据qryModData正确勾选复选框
有什么想法吗?
--已编辑以包含代码--
<table width="50%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>Module</td>
<td>Module Code</td>
<td> </td>
</tr>
<?php do { ?>
<tr>
<td><?php echo $row_qryModuleList['mod_name']; ?></td>
<td><?php echo $row_qryModuleList['mod_code']; ?></td>
<td><input <?php if (!(strcmp($row_qryModData['M01'],$row_qryModuleList['mod_code']))) {echo "checked=\"checked\"";} ?>name="chkMod" type="checkbox" id="chkMod" value="<?php echo $row_qryModData['M01']; ?>" /></td>
</tr>
<?php } while ($row_qryModuleList = mysql_fetch_assoc($qryModuleList)); ?>
</table>
然后有两个 SQL 查询,一个生成用于构建表的列表,第二个是我试图用来将框设置为勾选的。
qryModuleList
SELECT *
FROM tblmodules
ORDER BY mod_name ASC
qryModData
SELECT *
FROM tbldata
WHERE trust_key = varTrust
varTrust 是从 URL 变量中提取的。
很抱歉首先没有包含代码。
--编辑新代码。
<?php while ($row_qryModuleList = mysql_fetch_assoc($qryModuleList)) { ?>
<tr>
<td><?php echo $row_qryModuleList['mod_name']; ?></td>
<td><?php echo $row_qryModuleList['mod_code']; ?></td>
<td><input <?php if (strcmp($row_qryModData['M01'],$row_qryModuleList['mod_key']) != 0) {echo "checked=\"checked\"";} ?>name="chkMod" type="checkbox" id="chkMod" value="<?php echo $row_qryModData['M01']; ?>" /></td>
</tr>
<?php } ; ?>
--为新代码编辑。
<tr class="tblHead">
<td>Module</td>
<td>Module Code</td>
<td>Enabled\Disabled</td>
</tr>
<?php
$mod_data = array();
while ($row_qryModData = mysql_fetch_assoc($qryModData))
array_push($mod_data, $row_qryModData['M01']);
$currentRow = 0;
while ($row_qryModuleList = mysql_fetch_assoc($qryModuleList)) {
?>
<tr bgcolor="<?php echo($currentRow++ % 2)?"#CCFFFF":"#FFCCFF";?>">
<td><?php echo $row_qryModuleList['mod_name']; ?></td>
<td><?php echo $row_qryModuleList['mod_code']; ?></td>
<td><input <?php if (false !== (array_search($mod_data, $row_qryModuleList['mod_key']))) echo "checked=\"checked\""; ?> name="chkMod" type="checkbox" id="chkMod" value="<?php echo $row_qryModData['M01']; ?>" /></td>
</tr>
<?php } ; ?>