我有两个数组都来自我的SQL服务器
实施例: 数组1(45,46,47,48) 数组2(46,47)
我的代码如下:
<select>
<?
while($array1 = $t->fetch_object()) /*Get from DB*/ {
foreach($array2 as $a2){
?>
<option <?=$array1 == $a2 ? 'value="'.$array1'" select="selected"' : 'value="'.$array1.'"'?>><?=$array1?><option>
<? } }?>
</select>
这会多次生成自己,因为它会循环array2两次。我出于某种原因无法弄清楚如何在没有多个选项的情况下正确运行。 (也许我一整天都在工作)但是任何帮助都一定会受到赞赏。
编辑:所以输出不是:
45 46选中 47选中 48 45选中 46选中 47 48
它是: 45 46选中 47选中 48
上面由于foreach而循环两次,我不知道如何让它循环一次。嗯,如果我有$ i = 1,它会在下一次计数时停止。
澄清我正在使用此http://www.erichynds.com/jquery/jquery-ui-multiselect-widget/下拉菜单。
答案 0 :(得分:0)
我可能不太了解你的问题,但我从代码中看到了什么。您正尝试从array2进行默认选择。我这样做的方法是:
<select>
<?php
//Here comes the php
//Variables
//---------------
$array2 = array(46,47);
//---------------
//Looping into the fecthed data
//------------------
while($array1 = $t->fetch_object()) /*Get from DB*/ {
//Initalization of looping variables
$boolFound = false;
$i = 0;
//looking into aray2 for default values
while($boolFound == false && $i < count($array2)) //While a default is not a match
{ //or the end of array2
if($array2[$i] == $array1) //Is this a default value?
{
$boolFound = true; //Yes, we stop the loop
}
else
{
$i++; //No, we continu until the end of array2
}
}
//Either we have a default or not we output the option
echo('<option value="'.$array1.'" ');
//if it is a default, we output "selected"
if($boolFound)
{
echo('select="selected"');
}
//Then the value itself, and we close the html
echo('>'.$array1.'</option>');
}
//------END of data looping------------
//END of PHP
?>
</select>
这个问题。您可能有超过1个“默认”选项(已选中)。
希望得到这个帮助。
安托
(我在php中有点生疏,不确定“$ array1 = $ t-&gt; fetch_object()”部分。)