1

它真的很奇怪..这个有什么问题..??默认情况下,我想在我的选择下拉列表中选择一个选项。因此,如果设置了一个值,我的 if 条件为真,那么为什么 else 也在执行。您的帮助将不胜感激。

<select name="location" id="location" class="selector_holder_select">

<?php foreach($location as $loc){ ?>

<option value="<?php echo $loc['deal_location_id']; ?>"

<?php if($loc['deal_location_id']==$_POST['location']){ echo 'selected="selected"'; }

else { 

if(strcasecmp($loc['location'], $city['cityName']) == 0) { echo 
'selected="selected"';     }

 } ?>><?php echo $loc['location']; ?></option>

 <?php } //End of Foreach ?> 

 </select>
4

4 回答 4

0
  Above not solve my issue.However this one worked.But can any body make it          
  shorter  and cleanup so it looks more professional.


   <select name="location" id="location" class="selector_holder_select">
   <?php foreach($location as   $loc){  ?>                  
    <option value="<?php echo $loc['deal_location_id']; ?>"
    <?php               
   if($loc['deal_location_id']==$_POST['location'])
   {
    echo 'selected="selected"'; 
   } 
   else {     
        if(strcasecmp($loc['location'], $city['cityName']) == 0 and !isset($_POST['location']))
        { echo 'selected="selected"'; } 
   } ?>>
<?php echo $loc['location']; ?></option>

 <?php } ?>
 </select>
于 2013-01-03T06:34:12.510 回答
0

这段代码的一个问题是您大量混合了 HTML 和 PHP。这使得阅读非常困难。我建议使用 HEREDOC 或类似的东西来创建所有 HTML 部分,而不是经常打开和关闭 PHP。

我猜发生的情况是,一旦在 foreach 循环中满足第一个 if 条件,并且一次(在不同的迭代步骤中)满足 elseif。这样就选择了两个元素。

问题是,您无法在单个 foreach 中解决此问题。您首先必须检查 if-case 在某个时候是否为真。如果是这样,您可以设置选定的相应字段。如果不是,您可以搜索 else-if 并处理它。

于 2013-01-02T11:15:51.463 回答
0

尝试这个:

<select name="location" id="location" class="selector_holder_select">
<?php foreach($location as $loc){
    echo('<option value="'.$loc['deal_location_id'].'"')
    if($loc['deal_location_id'] == $_POST['location'] || strcasecmp($loc['location'], $city['cityName']) == 0)
        echo(' selected="selected"');
    echo(">".$loc['location']."</option>");
?>
</select>

但是,我建议您遵循有关 PHP 基础知识的教程,例如来自 W3C的教程。看起来您没有任何 PHP 经验。

于 2013-01-02T11:17:06.863 回答
0

尝试这个:

<select name="location" id="location" class="selector_holder_select">
    <?php 
    foreach($location as $loc) {
            echo "<option value=$loc['deal_location_id']>";

            if($loc['deal_location_id']==$_POST['location']) { 
                echo 'selected="selected"'; 
            } else { 
                if(strcasecmp($loc['location'], $city['cityName']) == 0) { 
                    echo 'selected="selected"';     
                }
            }

            echo "$loc['location']</option>";
  }
</select>
于 2013-01-02T11:21:26.767 回答