Chtml ::与JQuery的链接

时间:2011-06-29 20:21:01

标签: php jquery yii

我有一个下拉列表

<?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中的一列。我无法获得正确的价值。

感谢您的帮助。

3 个答案:

答案 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')))