0

当页面根据数据库中的值加载时,将填充第一个下拉框。第二个下拉框应根据第一个下拉框中的选择显示一组值。我知道以前在这里问过类似的问题,但我还没有找到与我的场景相匹配的解决方案。

用户界面代码:

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

我的控制器.php

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

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

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

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

库马尔

4

2 回答 2

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>

我的控制器.php

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

调用函数的url路径

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

更多信息参考这个链接 希望它可以帮助你。

于 2013-10-08T07:59:25.247 回答
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>

控制器.php:

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

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

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

?>
于 2013-10-08T08:07:36.767 回答