1

我将尝试告诉您我将要使用此代码做什么。

我正在创建一个表,其中第一列是用户名,后跟当月的天数(每一天在一列中)。现在我正在尝试在每一行/列中创建选择选项以从中选择一个值。

这是我的代码:

<table width="100%" cellspacing="0" cellpadding="0" class="addtable">
<tr>
<td class="tabletitle">Personeelslid</td>
<?php
do{
    echo "<td class=\"tabletitle\">".$i."</td>";
    $i++;
} while ($i<=$dagen);
?>
</tr>
<?php
while($row_pers = $mysql->fetch_array($result_pers))
{
    $j=1;
    if ($color == _COLOR_WHITE){
        $color = _COLOR_GREY;
    } else {
        $color = _COLOR_WHITE;
    }
    echo "<tr class=\"trborder\">";
    echo "<td bgcolor=\"".$color."\">".$row_pers['pers_naam']."</td>";
    while ($j<=$dagen){
        echo "<td  bgcolor=\"".$color."\">";
        ?>
        <select name="naam_id" id="naam_id">
        <option value="test">test</option>
        <?php
        while($row_shiften = $mysql->fetch_array($result_shiften))
        {
        echo "<option value=\"".$row_shiften['shift_code']."\">".$row_shiften['shift_code']."</option>";
        }
        ?>
        </select>
        <?php
        echo "</td>";
        $j++;
    }
    echo "</tr>";
}
?>
</table>

当前结果提供了我想要的一切,除了选择选项仅显示在 1 个位置。是否可以缓存它或重写我的代码以使其工作?

提前感谢

4

4 回答 4

0

我们可能需要更多代码,例如:表结构和查询。看起来如果您正在尝试组合来自两个表的数据,并且使用 JOIN 查询来做到这一点更为常见。(例如http://mysqljoin.com/一个完全专注于这个主题的网站)

祝你好运!

于 2012-04-16T18:20:59.517 回答
0

您可以将选项输出存储在字符串中,并生成一次。然后引用输出表中每一行的存储选项:

<?php
while($row_shiften = $mysql->fetch_array($result_shiften))
{
    $options += "<option value=\"".$row_shiften['shift_code']."\">".$row_shiften['shift_code']."</option>";
}
...
while ($j<=$dagen){
    echo "<td  bgcolor=\"".$color."\">";
    ?>
    <select name="naam_id" id="naam_id">
    <option value="test">test</option>
    // add in the options generated once
    <?php echo $options; ?>
    </select>
    <?php
    echo "</td>";
    $j++;
}

此外,您不希望所有人<select>都具有相同的 id,因此您应该附加某种独特的后缀。

于 2012-04-16T18:21:08.017 回答
0

那么你已经“用完了”你的 $result_shiften 所以你不能再使用它了。您需要将其复制到另一个 var,位于脚本顶部的某个位置:

$options = "";
while($row_shiften = $mysql->fetch_array($result_shiften))
{
    $options += "\m<option value=\"".$row_shiften['shift_code']."\">".$row_shiften['shift_code']."</option>";
}

然后只需在下面使用 echo $options

<option value="test">test</option>
<?php echo $options; ?>
...etc
于 2012-04-16T18:21:29.637 回答
0

我不确定我是否正确地遵循了您的请求,但看起来您需要为 SELECT 实体提供更独特的名称/ID。现在,您拥有可变数量的 SELECT 标记,它们都使用相同的“名称”和“id”(“naam_id”)。

根据结果​​的结果将它们更改为变量$row_pers。或者,您可以使用$j,但是一旦您提交了表单并希望处理输入,这可能对您没有帮助。

于 2012-04-16T18:23:11.423 回答