我选择了具有多个属性的标签,我使用PHP serialize
函数将数据库中的多个值保存为序列化数组:
我插入的数据库数组:
a:9:{i:0;s:8:"Arkansas";i:1;s:10:"California";i:2;s:8:"Delaware";i:3;s:7:"Montana";i:4;s:14:"North Carolina";i:5;s:12:"North Dakota";i:6;s:8:"Nebraska";i:7;s:13:"New Hampshire";i:8;s:10:"New Jersey";}
现在,我想在SELECT
下拉列表中使用SELECTED
属性显示这些选定值,因为我的数据库中的值将显示为未选中。
示例:我有州表,我选择纽约,迈阿密并将其作为序列化数组<保存到数据库/ strong>即可。现在,在编辑页面上,我想要显示纽约,迈阿密,而休息状态将显示为未选中。
以下是我正在处理的代码:
$result = $mysqli->query("SELECT * FROM `web_states`") or die (mysqli_error());
$menu = "<select name='jurisdiction_state[]' class='multiselectState' id='focusedInput' multiple='multiple' size='15' required>";
$author = unserialize($data);
foreach( $author as $index=>$key ) {
$authorRecs = $this->getStateData($key);
$Recs = $authorRecs->fetch_object();
$menu .= "<option value='".$Recs->state_name."' selected=selected'>".$Recs->state_name."</option>";
}
$menu .= "</select>";
echo $menu;
答案 0 :(得分:0)
我自己解决了,现在问题解决了。从我以前的代码不可能。
以下是数据库中的serized数组:
a:9:{i:0;s:8:"Arkansas";i:1;s:10:"California";i:2;s:8:"Delaware";i:3;s:7:"Montana";i:4;s:14:"North Carolina";i:5;s:12:"North Dakota";i:6;s:8:"Nebraska";i:7;s:13:"New Hampshire";i:8;s:10:"New Jersey";}
我只是使用以下命令对其进行反序列化:
$data = unserialize(a:9:{i:0;s:8:"Arkansas";i:1;s:10:"California";i:2;s:8:"Delaware";i:3;s:7:"Montana";i:4;s:14:"North Carolina";i:5;s:12:"North Dakota";i:6;s:8:"Nebraska";i:7;s:13:"New Hampshire";i:8;s:10:"New Jersey";})
并获取该数组的第一个索引,该数组以数组的形式返回State Names
。
所以最后我使用in_array()
检查了所选的和未选择的并获得了最终结果。
这是工作代码。
$result = $mysqli->query("SELECT state_name FROM `web_states`") or die (mysqli_error());
$menu = "<select name='jurisdiction_state[]' class='multiselectState' id='focusedInput' multiple='multiple' size='15' required>";
$author[1] = unserialize($data);
while($rcData = $result->fetch_array()){
if(in_array($rcData['state_name'], $author[1])){
$menu .= "<option value='".$rcData['state_name']."' selected='selected'>".$rcData['state_name']."</option>";
}else{
$menu .= "<option value='".$rcData['state_name']."'>".$rcData['state_name']."</option>";
}
}
$menu .= "</select>";
echo $menu;
希望它有所帮助。