【问题标题】:Select imploded values from a database and select them in a dropdown box从数据库中选择内爆值并在下拉框中选择它们
【发布时间】:2013-12-25 20:15:25
【问题描述】:

我有下面的代码来生成一个包含数据库值的多选框。有问题的页面是用于修改先前输入的信息的表单。 “$Interviewers0”的值是在生成框之前检索的。如果“$Interviewers0”的值为“John Doe”,它会选择该名称。但是,如果我的值为“John Doe, Jane Doe”,则不会选择任何名称。我知道这是因为内爆的价值,但我无法弄清楚。提前致谢!

{
$box1 = array();
 $result = "SELECT FullName FROM UserInformation";
  $rs=odbc_exec($conn,$result);
while($row = odbc_fetch_array($rs)) { $box1[] = $row; }
}
 $Interviewers = '<select name="Interviewers[]" multiple="multiple" size="5">';
  $Interviewers .= '<option>---< Select Interviewers >---</option>';
if (!empty($box1)) {foreach ($box1 as $k => $v)
 {if(!empty($Interviewers0)){$Interviewers .= '<option value="'.$v['FullName'].'"'. (!strcmp($v['FullName'],$Interviewers0)?' selected':'').'>'.$v['FullName'].'</option>';}
  else
 {$Interviewers .= '<option value="'.$v['FullName'].'">'.$v['FullName'].'</option>';}
}
}
$Interviewers .= '</select>';
echo $Interviewers;

【问题讨论】:

  • 我在你的代码中没有看到任何implode()...
  • 请学习正确缩进代码,不要害怕使用空格。没有人会认为你这样做是种族主义者。

标签: php


【解决方案1】:

您正在寻找的可以通过strpos 完成:

所以,使用:

(strpos($v['FullName'], $Interviewers0) !== false) ? ' selected' : ''

代替:

!strcmp($v['FullName'],$Interviewers0)?' selected':''

对于(strpos($v['FullName'], $Interviewers0) !== false) ? ' selected' : '',如果在$v['FullName'] 中找到$Interviewers0,则选择option

【讨论】:

    【解决方案2】:

    我换了

    (!strcmp($v['FullName'],$Interviewers0)?' selected':'')
    

    ((stripos($Interviewers0, $v['FullName']) !== false) ?' selected':'')
    

    就这么办了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-22
      • 2013-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多