我有类似$SubTopicid = $L_array["subtopicid"];
的php变量
然后以这种方式在选项标签中
<option <?php if (In_array($URow[0],explode(" ",$SubTopicid))) echo 'selected' ; ?> value="<?php echo $URow[0];?>"><?php echo $URow[1];?></option>
问题是未选择多个值
当我爆炸此变量$SubTopicids = explode(" ",$SubTopicid);
以这种方式获取结果
Array ( [0] => 248 ) Array ( [0] => 72 ) Array ( [0] => 72,248 )
选择了单个值(如 248 ),但未选择双值(如 72,248 )
答案 0 :(得分:1)
因此,如果我理解正确,您希望将$SubTopicid
中的所有选项都选中为已标记。
如果您的$SubTopicid
可以同时包含单选项和多选项,则您可能希望在while
循环之前将它们爆炸。
请考虑以下内容:
$SubTopicid = "248 72 72,248";
$SubTopicids = array();
foreach(explode(" ",$SubTopicid ) as $elem)
$SubTopicids = array_merge($SubTopicids ,explode(",",$elem));
在这种情况下,您的数组将如下所示:
Array
(
[0] => 248
[1] => 72
[2] => 72
[3] => 248
)
如果需要,您可以使用array-unique。
现在,当您运行时:
while($URow=mysql_fetch_array($RowRes)){
<option <?php if (In_array($URow[0],$SubTopicids)) echo 'selected' ; ?> value="<?php echo $URow[0];?>"><?php echo $URow[1];?></option>
}
您将所有给定选项标记为选中。