php选择存储错误选项

时间:2014-05-02 15:51:03

标签: php

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

2 个答案:

答案 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;

这样您就可以了解正在发生的事情并调试问题。