PHP选择选项存储错误的选项


php select option storing wrong option

我有一个选择下拉列表,我有我想要被选中的值,所以我有一个比较来获得该值,并使其成为被选中的选项。问题是,当我在调试器中查看代码时,代码似乎经过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>                   

必须使用==进行比较(或使用===进行精确比较)。使用= 赋值,并将求值为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;

这将允许您查看发生了什么并调试问题。

对于比较,您应该使用==(比较)而不是=(赋值)