【问题标题】:Chtml::link with JQueryChtml::link 与 JQuery
【发布时间】:2011-06-29 20:21:01
【问题描述】:

我有一个下拉列表

<?php echo CHtml::dropDownList('adj', $adj, $adjudicators, array('id'=>'adjudicator')); ?>

它有很多选择。

我想获取该下拉列表的当前值,并在我的链接中使用 is 作为参数。

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

感谢您的帮助。

【问题讨论】:

    标签: php jquery yii


    【解决方案1】:

    链接是在 PHP 中创建的(您的内容到达浏览器之前)。 “下拉列表的当前值”仅在您的内容到达浏览器之后 才有意义(用户可以从菜单中选择某些内容)。因此,上述问题根本无法用 PHP 解决。

    您需要让链接执行一些 JavaScript,它会在现场查看当前选择的项目是什么,使用此信息创建一个 URL,然后导航到该 URL。

    【讨论】:

    • 我似乎无法调用 javascript 函数。感谢您的帮助,我已经更新了上面的代码。
    【解决方案2】:

    您是否检查了 id 上的 html 输出以进行选择?您可能需要在 jQuery 函数中使用 #adj 而不是 #adjudicator

    您还可以添加类似:array('onchange'=&gt;'update_function(this);') 以将表单信息传递给函数。

    【讨论】:

      【解决方案3】:

      简化的解决方案(删除了转义符以便于阅读):

      CHtml::ajaxLink('Assign', Yii::app()-&gt;createUrl('pwdApplication/assignApp'), array('type'=&gt;'POST', 'data'=&gt;array('id'=&gt;$data-&gt;id, 'flag'=&gt;1, 'adj'=&gt;js:getAdj())), array('href'=&gt;Yii::app()-&gt;createUrl('pwdApplication/assignApp'), 'id'=&gt;$data-&gt;id . 'assign')))

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多