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

リクエストに適切に従っているかどうかわかりませんが、SELECT エンティティに対してより一意の名前/ID が必要なようです。現在、同じ「name」と「id」(「naam_id」) を使用するさまざまな数の SELECT タグがあります。

結果の結果に基づいて、それらを変数に変更します$row_pers。または、 を使用することもできます$jが、フォームを送信して入力を処理しようとすると、役に立たない場合があります。

于 2012-04-16T18:23:11.423 に答える
0

たとえば、テーブル構造やクエリなど、さらに多くのコードが必要になるでしょう。2 つのテーブルのデータを結合しようとしているように見えますが、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 を「使い果たした」ので、もう使用できません。スクリプトの先頭にある別の変数にコピーする必要があります。

$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 に答える