来自数据库的onchange下拉列表 - php,没有java或ajax

时间:2017-02-23 10:11:37

标签: php html sql dynamic onchange

我有一个问题,我想显示从数据库到动态onchange选择表单的所有行,但它只显示第一行或仅显示最后一行。你能帮我一个人吗?

这是我的代码:

<?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>

2 个答案:

答案 0 :(得分:0)

问题是你带着选项返回一个<option>

改变这个:

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

到此:

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

答案 1 :(得分: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;
 }