0

MySQL テーブルのデータを表示する PHP フォームがあります。各行には明らかに異なるデータがあります。私がやりたいのは、各行のデータ エントリに関連するデータを表示するドロップダウン リストです。

たとえば、2 つのテーブルがあるとします。以下のように、Fruit と Fruit_Colors:

ここに画像の説明を入力 ここに画像の説明を入力

私のPHPフォームが以下のように表示された場合、果物という名前のMySQLデータは果物列にデータを表示します。次に、「Fruit」フィールドの PHP フォーム出力値に応じて、Fruit_Colors テーブルから色が取得されます。そのため、各行のドロップダウン リストは異なります。

ここに画像の説明を入力

私のPHPフォームテーブルの構文は次のとおりです。

<table id="hor-minimalist-a">
    <tr>
        <th>ID</th>
        <th>Fruit</th>
        <th>Color</th>
        </tr>
<? while($row = $fruits->fetch(PDO::FETCH_ASSOC)) { ?>
    <tr>
        <td><? echo $row['id']; ?></td>
        <td><? echo $row['fruit']; ?></td>
        <td><SELECT NAME="fruitcolor" id="fruitcolor">
            <OPTION VALUE=0 >
             *// what goes here???*
            </option>
            </SELECT> 
        </td>
    </tr>
<? } ?>
</table>

これを完了する方法についてアドバイスをいただければ幸いです。このテーブルは最大 50 行になる可能性があるため、'fruit' 値をドロップダウン リストに動的に渡す必要があることに注意してください。

ドロップダウンリストの人口について私が知っている構文は次のとおりです。

    function fruitcolor_dropdown($db)  
  {    
    $result = $db->query("select color from Fruit_Color where Fruit=*'outputted value'*"); 
    return $result; 
  } 
  $colors= fruitcolor_dropdown($db); 
  while($row = $colors->fetch(PDO::FETCH_ASSOC)) {
  $color=$row["color"];
  $optionsfruitcolors.="<OPTION VALUE=\"$color\">".$color; 
  }

いつものようにアドバイスをいただければ幸いです。ありがとうございます。

4

3 に答える 3

1

これをチェックしてください。ドロップダウン オプションを生成する関数を作成します。DB と果物をパラメータとして受け取ります --> ループして DOM を作成します --> ブラウザに出力します。

PHP 関数

function getColors($db, $fruit)
{
    $result = $db->query(
            sprintf("select color from Fruit_Color where Fruit = '%s'",
                    $fruit
            )
    );

    $output = '';
    while($row = $result->fetch(PDO::FETCH_ASSOC))
    {
        $output .= sprintf(
                '<option value="%s">%s</option>', 
                $row['color'], 
                $row['color']
        );
    }

    return $output;
}

テンプレート

<? while($row = $fruits->fetch(PDO::FETCH_ASSOC)) { ?>
    <tr>
        <td><? echo $row['id']; ?></td>
        <td><? echo $row['fruit']; ?></td>
        <td><SELECT NAME="fruitcolor" id="fruitcolor">
             <?php echo getColors($db, $row['fruit']); ?>
            </SELECT> 
        </td>
    </tr>
<? } ?>
于 2013-01-03T13:06:19.753 に答える
0

これを選択ボックスで使用します

function fruitcolor_dropdown($db)  
{    
   $result = $db->query("select color from Fruit_Color where Fruit=*'outputted value'*"); 
   return $result;
   while($row = $colors->fetch(PDO::FETCH_ASSOC)) {
      $color=$row["color"];
      $optionsfruitcolors.="<OPTION VALUE=\"$color\">".$color; 
   }  
} 
<select name="fruitcolor" id="fruitcolor">
   <?php  $colors= fruitcolor_dropdown($db); ?> 
</select>
于 2013-01-03T13:02:36.233 に答える