我有一个下拉列表
<?php echo CHtml::dropDownList('adj', $adj, $adjudicators, array('id'=>'adjudicator')); ?>
有很多选择。
我想获取该下拉列表的当前值,并将其用作链接中的参数。
array('name'=>'Assign', 'type'=>'raw', 'value'=>'CHtml::ajaxLink(\'Assign\',array(\'pwdApplication/assignApp\'), array(\'type\'=>\'POST\', \'data\'=> array(\'id\'=>$data->id, \'flag\'=>1, \'adj\'=>\'{getAdj()}\',), \'success\'=>"function(result) {$(this).html(\'Assigned\'); }",))'),
这是javascript函数
<script>
function getAdj() {
return $('#adjudicator').val();
}
</script>
该链接是CGridView
中的一列。我无法获得正确的价值。
感谢您的帮助。
答案 0 :(得分:3)
链接是在PHP中创建的(在您的内容到达浏览器之前)。 “下拉列表的当前值”只有在内容到达浏览器后才有意义(用户可以从菜单中选择内容)。因此,PHP所解决的问题根本无法解决。
您需要让链接执行一些JavaScript,这会在当场查看当前所选项目,使用此信息创建URL,然后导航到此URL。
答案 1 :(得分:0)
您是否检查了选择ID的html输出?您可能需要在jQuery函数中使用#adj
而不是#adjudicator
。
您还可以添加以下内容:array('onchange'=>'update_function(this);')
将表单信息传递给函数。
答案 2 :(得分:0)
简化解决方案(删除了转义,因此更容易阅读):
CHtml::ajaxLink('Assign', Yii::app()->createUrl('pwdApplication/assignApp'), array('type'=>'POST', 'data'=>array('id'=>$data->id, 'flag'=>1, 'adj'=>js:getAdj())), array('href'=>Yii::app()->createUrl('pwdApplication/assignApp'), 'id'=>$data->id . 'assign')))