1

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

私のウェブサイトにリンクされた MySQL データベースを更新するための php フォームを作成しています。

私のフォームの一部には、ユーザーが ctrl を押して複数の値を選択できるリスト フィールドが含まれており、これらはカンマ区切りの値として 1 つの MySQL フィールドに渡されます。データの 3 つの実際の例については、以下を参照してください。

3014

3014,3015,3026

3026,3028

フォームは必要に応じてデータベースを更新していますが、ユーザーがフォームに戻って別の更新を行うと、選択した複数の値が事前に選択されていません。

$row_editme['NewsTypeID'] が値の文字列を含むフィールドである理由を理解するのを手伝ってくれる人はいますか? フィールド タイプは SET です。

<td nowrap="nowrap" align="right">NewsTypeID:</td>
<td>
  <select name="NewsTypeID[]" size="4" multiple="multiple">
  <?php 
    do {  
  ?>
     <option value="<?php echo $row_types['id']?>" <?php if (!(strcmp($row_types['id'], htmlentities($row_editme['NewsTypeID'], ENT_COMPAT, 'utf-8')))) {echo "SELECTED";} ?>><?php echo $row_types['name']?></option>
  <?php } while ($row_types = mysql_fetch_assoc($types)); ?>
      </select>
</td>
4

2 に答える 2

1

このようなことを試してみてください。

<select name="NewsTypeID[]" size="4" multiple="multiple">
  <?php 
  do {  
    $selected = htmlentities($row_editme['NewsTypeID'], ENT_COMPAT, 'utf-8');
    $selected_arr = explode(",",$selected);
  ?>
   <option value="<?php echo $row_types['id']?>" <?php if (in_array($row_types['id'],$selected_arr)) {echo "selected";} ?>>
      <?php echo $row_types['name']?>
   </option>
  <?php } while ($row_types = mysql_fetch_assoc($types)); ?>
</select>
于 2013-09-26T04:31:12.363 に答える
0

選ばなくてもいいと思います。

試してみcheckedませんか?

<input type="checkbox" <?php /*if condition is met here, then*/ echo "checked='checked'" ?> />

ユーザーが選択したすべての値が事前に選択されます。

于 2013-09-26T02:59:07.860 に答える