第二个下拉列表基于使用脚本和PHP / MySQL选择第一个下拉列表

时间:2013-10-08 07:48:09

标签: php jquery html-select

当页面根据数据库中的值加载时,将填充第一个下拉框。第二个下拉框应根据第一个下拉框中的选择显示一组值。我知道之前有过类似的问题,但我没有找到符合我情景的解决方案。

UI代码:

<tr>
<td><label for="taProj"><?php echo t('Project')?>:</label></td>
<td><select name="taProj" id="taProj" onchange= "get_module()">
<option value="" >-------------------------</option>
<?php   foreach ($tap as $row){?>
<option value="<?php echo $row['proj_id']; ?>" ><?php echo $row['proj_name'];?></option>
<?php } ?>
</select></td>
</tr>
<tr>
<td><label for="taModule"><?php echo t('Module Name')?>:</label></td>
<td><select name="taModule" id="taModule" >
<option value="" >-------------------------</option>
<?php   foreach ($tam as $row){?>
<option value="<?php echo $row['mod_id']; ?>" ><?php echo $row['mod_name'];?></option>
<?php } ?>
</select></td>
</tr>

<script type="text/javascript">
    function get_module(){      
        var projid = document.getElementById('taProj').value;
        alert(projid);
    }   

</script>

mycontroller.php

public function sample(){
        echo $_GET['projid'];       
    }

工作正常.. 我的需要是......

如何调用mycontroller.php文件函数sample()和 如何将javascript值传递给php函数参数。

我是脚本和jquery中的新手。请任何建议我...谢谢

库马尔

2 个答案:

答案 0 :(得分:1)

  <script type="text/javascript">
    function get_module(){      
     var projid = document.getElementById('taProj').value;
     $.ajax({
        url : //ur controller path/methodname(module),
        data : "id="+projid,
        method : 'POST',
        success : function(data) {
             //here you will get response from your controller method and manipulate as per your use..
        }
    })
 }   

 </script>

<强> mycontroller.php

  public function module(){
    echo $_POST['id'];       
}
      or
 public function module($id){
    echo $id;       
}

调用函数的url路径

  url : '<?php echo str_replace('&amp;', '&', $this->action('model')); ?>',

更多信息请参阅this link 希望它可以帮助你。

答案 1 :(得分:0)

你可以使用Simple jquery Ajax来实现。 Javascript:

<script type="text/javascript">
function get_module(){

var projid = document.getElementById('taProj').value;

//Pass your value to controller.php through ajax

$.ajax({
  url:"controller.php",
  data:{id:projid},
  type:"get",
  success:function(data){
    $("#taModule").html(data);  //inserts your data into second select field
}
});
</script>

Controller.php这样:

 <?php
  $id = $_GET['id'];

  //enter your DB query to retrive values using $id

 echo "<option value=".$demo['id'].">".$demo['value']."</option>";

?>