1

任何帮助将不胜感激!!

我正在构建一个 php 表单来更新链接到我的网站的 MySQL 数据库。

我的表单的一部分包括列表字段,用户可以在其中按住 ctrl 选择多个值,然后将这些字段作为逗号分隔值传递到一个 MySQL 字段中。请参阅下面的三个真实数据示例:

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

I think it is not supposed to be selected.

Can you try checked?

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

It will pre-select all the values the user selected.

于 2013-09-26T02:59:07.860 回答