我有一个选择下拉列表,我有我想要选择的值,所以我有一个比较来获得该值并使其成为选定的选项。问题是,当我查看调试器中的代码时,代码似乎通过 If 侧,然后是 Else 侧的每个项目的比较选项表。我确信它在我的代码中是愚蠢的,但我无法发现它。也许这对某人来说是显而易见的。这是代码
<select name="cust_code" id="cust_code">
<?php foreach ( $customers as $option ) : ?>
<? if ($option->refno == $cust_code){
?>
<option value="<?php echo $option->refno; ?>" selected="selected"><?php echo $option->company; ?></option>
<?
}
else {
?>
<option value="<?php echo $option->refno; ?>"><?php echo $option->company; ?></option>
<?
}
?>
<?php endforeach; ?>
</select>
答案 0 :(得分:0)
对于比较,您应该使用==
(比较)而不是=
(作业)
答案 1 :(得分:0)
您必须使用==
进行比较(或===
进行精确比较)。使用=
分配值,并将评估为true。
让你的生活更简单。
不是全新的输出,只需根据if条件设置selected
参数:
<?php foreach ( $customers as $option ) :
// Create the selected parameter if the values match
$selected = ($option->refno == $cust_code) ? ' selected' : '';
?>
<option value="<?php echo $option->refno; ?>"<?php echo $selected; ?>><?php echo $option->company; ?></option>
<?php endforeach; ?>
最后,如果在更改为==
后问题仍然存在,那么您应该在循环中输出比较变量的内容:
echo '<br>' . $option->refno . ' == ' . $cust_code;
这样您就可以了解正在发生的事情并调试问题。