2012-04-23 3 views
0

Я занимаюсь раскрывающимся списком, где я скажу, что у нас есть опции «option1» и «option2», dropbox выбирает (отмечает) «option1», а затем мы выбираем «option2», , Я хочу, чтобы он помещал «option2» в раскрывающемся списке, но он не помечен.PHP: выбранное значение в раскрывающемся списке

Я стараюсь избегать делать javascript на этом, поэтому я задаюсь вопросом, могу ли я сделать это только на PHP.

Советы? Благодаря!

Редактировать. Ну, проблема в том, что я не знаю, сколько вариантов у меня есть, прежде чем создавать раскрывающееся меню. Я получаю массив, сгенерированный из таблицы в базе данных, и делаю варианты на основе этого. Код:

<select name="department"> 
      <?php foreach(bloggModelControler::getDepartments($_SESSION['user']) as $tempDepartment){ 
       if(strcmp($tempDepartment, $department) == 0){ 
        $selected = ".selected='selected'."; 
       }else{ 
        $selected = ".selected=''."; 
       } 
       $dropdown = "<option \"$selected\" value=\"$tempDepartment\">\"$tempDepartment\" Selected</option>"; 
       echo $dropdown; 
}?>   
</select> 

и $ отдел:

<?php 
     if(isset($_POST['department'])){ 
      $department = $_POST['department']; 
     }else{ 
      $departments = bloggModelControler::getDepartments($_SESSION['user']); 
      $department = $departments[0]; 
     } 
    ?> 
+0

"раздаточной выбирает (знаки) "option1", а затем мы выбираем "параметр2", я хочу его, чтобы отметить" option2 "в раскрывающемся списке, но он не отмечает его." ЧТО ВЫ ИМЕЕТЕ В ВИДУ? ВЫ ВЫБРАТЬ ЗНАЧЕНИЕ, НО ЭТО СБЕРЕЖЕТЕ? извините за колпачки – squarephoenix

+0

да он сбрасывает и по-прежнему отмечает «option1» – Alexein

+0

непонятным ... можете ли вы приложить кусок HTML/PHP? – dAm2K

ответ

2

Обновленный ответ, основанный на обновленный вопрос (включен код)

Не помещайте периоды внутри текстовых переменных для «выбран ».

if(strcmp($tempDepartment, $department) == 0){ 
       $selected = "selected='selected'"; 
      }else{ 
       $selected = "selected=''"; 
      } 

Предыдущий ответ

В вашем PHP код, который генерирует HTML для Select поле, вы должны указать, какой вариант будет выбран.

Например:

<select name="selectbox"> 
    <option <?php if ($_POST['selectbox'] == 'option1') echo 'selected="selected"';?>>option1</option> 
    <option <?php if ($_POST['selectbox'] == 'option2') echo 'selected="selected"';?>>option2</option> 
</selected> 

Альтернативный синтаксис:

<select name="selectbox"> 
    <option <?= ($_POST['selectbox'] == 'option1')? 'selected="selected"' : '';?>>option1</option> 
    <option <?= ($_POST['selectbox'] == 'option2')? 'selected="selected"' : '';?>>option2</option> 
</selected> 
+0

Я подозреваю ваше право, вы можете сократить этот код с помощью '

+0

@LawrenceCherone Это не делает его намного короче, но я добавил альтернативный синтаксис, как вы предложили также. – AndrewR

+0

+1; p 4 байта на строку –

Смежные вопросы