我有这个代码用于在$imeitransferserial中以select multiple设置所选值这是$imeiserial中的值数组(2){[0]=>string(15)"869434022236534"[1]=>string(15]"869434022351051"}>字符串(16)"869434022342456"等等。我只想在我的选项中自动选择imeitransferserial的值。我尝试了这个代码,但所有项目都被选中了。
$trans=mysqli_query($link,"select * from transferinventory where ITEM_CODE_MX='OPP01-A11WGRY'");
while($row2=mysqli_fetch_array($trans))
{
$imeitransfer=$row2["IMEI_MX"];
$imeitransferserial = explode(',', $imeitransfer);
var_dump($imeitransferserial);
}
$query=mysqli_query($link,"select * from inventory where ITEM_CODE_MX='OPP01-A11WGRY' AND BRANCH_CODE_MX='AC001'");
while($row=mysqli_fetch_array($query))
{
$imei=$row["IMEI_MX"];
$imeiserial = explode(',', $imei);
}
?>
<select id="tags" name='imei[]' style="width:300px;" class="form-control select2-offscreen" onchange="getCount()" multiple>
<?php
foreach($imeiserial as $is){
$imeicode = trim($is);
if (in_array($imeicode,$imeitransferserial)) {
$select = 'selected="selected" ';
}
if (!empty($imei)) {
echo "<option " . $select . "value='$imeicode'>".$imeicode."</option>";
}
}
?>
</select>
问题是在第一次迭代时设置$select
的值,当为false时,永远不会清除该值
if (in_array($imeicode,$imeitransferserial))
你需要添加一个其他-
if (in_array($imeicode,$imeitransferserial)) {
$select = 'selected="selected" ';
}
else {
$select = "";
}