0

うまく編集できるドロップダウンメニューがあります。

        // Connect to Local Host
        @ $db=mysqli_connect('localhost', 'root');
        if (!$db)    {  do_Warning(-1);  exit;  }

    // Connect to Database
        @ mysqli_select_db($db,'coshh');

 echo '<tr><td>Harmful effects:</td>
         <td><select name="Harmful_effects"><option></option>'; 

       /* Create SQL to extract effects options */ 
      $sql = "SELECT * FROM `lookup_harmful_to_reproductive_system` ORDER BY `id`"; 
       /* Perform SQL to get effects options */ 

      $result = mysqli_query($db, $sql); 

     /* Build dropdown list for each effects option found in result */ 
     while ($row=mysqli_fetch_array($result,MYSQLI_BOTH)) 
     { 
       echo '<OPTION value="'.$row['Harmful_effects'].'"'; 
       if ($Harmful_effects == $row['Harmful_effects']) 
       {
         echo ' selected';
       } 
     echo '>'.$row['Harmful_effects'].'</OPTION>'; 
     }  
   echo '</select></select></td>';

ただし、複数オプションのドロップダウン メニューに変更するように依頼されました。これを行ったところ、MySQL データベースに複数のオプションが挿入されました。私が遭遇した大きな問題は、この複数のドロップダウン メニューを編集しようとすると、データベースから以前に選択/入力されたデータが強調表示されないことです。私は始めましたが、それを理解するのに本当に苦労しています。

echo '<tr><td>Harmful effects:</td>
   <td><select name="Harmful_effects[]" multiple="multiple" STYLE="width: 500px" size="0"><option></option>'; 

   /* Create SQL to extract effects options */ 
  $sql = "SELECT * FROM `lookup_harmful_to_reproductive_system` ORDER BY `id`";

   /* Perform SQL to get effects options */ 
   $result = mysqli_query($db, $sql); 

   /* Build dropdown list for each effects option found in result */ 
    while ($row=mysqli_fetch_array($result,MYSQLI_BOTH)) 
    { 
      echo '<OPTION value="'.$row['Harmful_effects'].'"'; 
     if ($Harmful_effects == $row['Harmful_effects']) 
    {
       echo ' selected';
   } echo '>'.$row['Harmful_effects'].'</OPTION>'; 
  }  echo '</select></select></td>';

どんな提案/助けも大歓迎です!

4

2 に答える 2

0

$Harmful_effects選択コントロールの保存された結果を含む配列である必要があります。次に、次のテストを使用して複数選択を実行できます。

if (in_array($row['Harmful_effects'], $Harmful_effects)) {echo ' selected';}
于 2013-09-03T10:26:28.950 に答える
0

$Harmful_effectsと に問題があると思います$row['Harmful_effects']。おそらく、次のようなものになるはずです。

if (in_array($row['harmful_effects'], $harmful_effects) {
  echo 'selected';
}

選択した効果の配列をデータベースに保存する方法と、変数を初期化する方法によって異なります$harmful_effects

于 2013-09-03T10:26:47.973 に答える