2013-09-23 5 views
0

Привет, я работал над формой, в которой есть выпадающее меню, и это значения из базы данных. Моя проблема заключается в том, что он не отображает значение, выбранное после отправки формы. что может быть проблемой?показать выбранное значение из раскрывающегося списка

<select name="professional" /> 
     <option value="">Choose one</option> 
      <?php 
       $result2 = mysql_query("SELECT * FROM professional"); 
       while($row2 = mysql_fetch_array($result2)) 
       { 
        $prc = $row2['name']; 
        $prof = $row2['prcno'] ."\t"."|\t". $row2['name'] ."\t"."|\t".$row2['profession']; 
        echo "<option value ='$prc'>$prof</option>"; 
       } 

      ?> 
     </select> 

 <select name="professional" disabled/> 
      <option value="">Choose one</option> 
      <?php 
       $result2 = mysql_query("SELECT * FROM professional"); 
       $i=0; 
       while($row2 = mysql_fetch_array($result2)) 
       { 
        $prc = $row2['name']; 
        $p1[$i] = $prc; 
        $prof = $row2['prcno'] ."\t"."|\t". $row2['name'] ."\t"."|\t".$row2['profession']; 
        $p2[$i] = $prof; 
        if($_POST['professional'] == $p1[$i]) 
        { 
         echo "<option selected value ='$p1[$i]'>$p2[$i]</option>"; 
        } 
        else 
        { 
         echo "<option value ='$p1[$i]'>$p2[$i]</option>"; 
        } 

       } 

      ?> 
     </select> 
+0

делает ваш элемент формы имеет 'метод = "post" ' –

+0

Что такое' $ _POST ['professional'] '? На целевой странице пусто? – Lan

+0

да он делает .... – hehehe

ответ

0

Попробуйте
selected="selected"

в смену

selected 
+0

Не требуется: http://www.w3.org/TR/html-markup/syntax.html#syntax-attr-empty – SamT

+0

uhm .. где ???? – hehehe

+0

В случае, если эта строка: echo ""; –

1

Это мне кажется, вы не приращением $ I, так что вы держите перезапись $ p1 [0] и $ p2 [0] на каждой итерации цикла while.

Так что добавьте $ i ++ в начале или в конце вашего цикла - или отбросьте все их использование на массивы ($ p1 и $ p2) и используйте $ prc и $ prof так же, как и в первом коде - блок - или вам они нужны для чего-то?

Другое дело, попробуйте удалить пространство между значением и = '$ p1 [$ я] - но я не уверен, что это проблема.

+0

Как я буду наращивать? – hehehe

+0

, как я уже писал - добавьте в ваше время петли (либо в начале или в конце его) следующие строки: '$ я ++;' Какой бы то же самое, как: '$ я + = 1 ; ' или ' $ i = $ i + 1; ' – jwulf

0

изменить эти строки в

echo "<option selected value ='<?php echo $p1[$i]; ?>'><?php echo $p2[$i]; ?></option>"; 

и не забудьте приращению ваши $ я слишком

Надеюсь, что это поможет :)

+0

Как я буду увеличивать? – hehehe

+0

добавить $ i ++; как раз перед закрытием вашего цикла –

+0

перед этим кодом? $ prc = $ row2 ['name']; – hehehe

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