当页面根据数据库中的值加载时,将填充第一个下拉框。第二个下拉框应根据第一个下拉框中的选择显示一组值。我知道之前有过类似的问题,但我没有找到符合我情景的解决方案。
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中的新手。请任何建议我...谢谢
库马尔
答案 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('&', '&', $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>";
?>