任何帮助都将不胜感激!!
我正在构建一个php表单来更新链接到我网站的MySQL数据库。
表单的一部分包括列表字段,用户可以在其中按住ctrl键选择多个值,然后这些值作为逗号分隔的值传递到一个MySQL字段中。有关数据的三个实际示例,请参见下文:
三千零一十四
301430153026号
30263028号
表单正在根据需要更新我的数据库,但是当用户返回表单进行另一次更新时,他们选择的多个值并不是预先选定的。
有谁能帮我弄清楚为什么$row_editme['NewsTypeID']是包含值字符串的字段。字段类型是一个集合。

<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>

最佳答案

试试这样的东西,

<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>

10-08 04:59