2017-02-23 80 views
0

У меня проблема, я хочу отобразить все строки из базы данных в динамическую форму обмена onchange, но она отображает только первую или только последнюю строку. Не могли бы вы мне помочь?onchange выпадающий список из базы данных - php, без java или ajax

это мой код:

<?php 
    $selected11 = ''; 
    function get_options11($vyber11) { 
     $queryyy = mysql_query("SELECT funkcia, ID_funk FROM funkcie"); 
     while($row = mysql_fetch_array($queryyy)) { 
     $v11=$row['ID_funk']; 
     $k11=$row['funkcia']; 
     $moznosti11 = ''; 
     if($vyber11==$v11){ 
      $moznosti11.='<option value="'.$v11.'" selected>'.$k11.'</option>'; 
     } else{ 
      $moznosti11.='<option value="'.$v11.'">'.$k11.'</option>';} 
     } 
     return $moznosti11; 
    } 
    if(isset($_POST['funkcia'])) { 
     $selected11 = $_POST['funkcia']; 
    } 
    } 
?> 
<select name="funkcia" class="ramceky" style="width: 150px; height: 40px" onchange="this.form.submit();"> 
    <option><?php echo get_options11($selected11); ?></option> 
</select> 
+1

Соня: первая из всех ** mysql_ * устарела, так что используйте mysqli_ * или PDO. Во-вторых, почему не аякс? –

+0

Если я пытаюсь mysqli_, то он показывает ошибку ... ожидает результат параметра 1 result..resource. Не ajax, потому что я хочу знать, почему он не работает. – Sonia

+0

Если вы не используете ajax, тогда вам нужно обновить страницу, и я думаю, что это не очень хороший подход. –

ответ

0

Вы присваиваете переменной $moznosti11; в каждом цикле. Переместите его прямо перед циклом, и он должен работать как шарм.

Смотрите здесь:

$moznosti11 = ''; 
while($row = mysql_fetch_array($queryyy)) { 
    $v11=$row['ID_funk']; 
    $k11=$row['funkcia']; 

    if($vyber11==$v11){ 
     $moznosti11.='<option value="'.$v11.'" selected>'.$k11.'</option>'; 
    } else{ 
     $moznosti11.='<option value="'.$v11.'">'.$k11.'</option>';} 
    } 
    return $moznosti11; 
} 
+0

YEEEEES :) Большое вам спасибо. оно работает :))) – Sonia

0

Проблема заключается в возврате с опционами, в один <option>.

Изменить это:

<option><?php echo get_options11($selected11); ?></option> 

к этому:

<?php echo get_options11($selected11); ?> 
+0

Спасибо, но это не проблема, она отображает мою проблему без опции белого кадра. – Sonia

+0

Да, это была не единственная проблема, но это проблема. Не ставьте '

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