1

その本当に奇妙な..これの何が問題なのか..?? デフォルトで選択ドロップダウンで1つのオプションを選択したいので、値が提示された場合、if条件が真になった場合、なぜ他のオプションも実行されます。あなたのヘルプは本当にありがたいです。

<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

このコードの問題の1つは、HTMLとPHPをかなり混同していることです。これは非常に読みにくくなります。PHPのオンとオフを頻繁に切り替えるのではなく、HEREDOCなどを使用してすべてのHTMLパーツを作成することをお勧めします。

foreachループで最初のif条件が満たされ、(別の反復ステップで)elseifが満たされるとどうなるかと思います。このようにして、2つの要素が選択されます。

問題は、この問題を1つの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 に答える
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 に答える