【问题标题】:Yii ajax checkBox with two urls带有两个 url 的 Yii ajax 复选框
【发布时间】:2013-10-16 21:44:20
【问题描述】:

我在 Yii 中有一个复选框,我在其中使用了 ajax。我想要做的是在checkBox被选中时使用一个'url'参数,而在未选中时使用另一个不同的参数。

例如,勾选时:

'url'=> CController::createUrl('/item/add'),

未选中时

'url'=> CController::createUrl('/item/remove'),

最好的方法是什么?当然我不想从控制器检查视图复选框的状态。

谢谢

【问题讨论】:

  • 为什么不写一个jQuery监听器,根据复选框是否选中来改变URL?
  • 但我只想更改 ajax 调用的 'url' 参数。是否可以?我想改变一个按钮组的复选框,所以每个按钮都有自己的 ajax 调用,有自己的 'url' 参数。

标签: ajax url checkbox yii


【解决方案1】:

我知道我会做 jQuery,比如:

 var url = '';
 if($('#chbInput').val() == 1)
 { 
      //do something when checked
      url = '<?php echo CController::createUrl('/item/add') ?>';
      ...
 }
 else
 {
      url = '<?php CController::createUrl('/item/remove') ?>';
      ...
 }

【讨论】:

  • 但在 Yii 中,ajax 声明是一个 php 数组,我不知道如何在 jQuery 中管理它。我所拥有的是'ajax'=>array('url'=> CController::createUrl('/item/remove'), 'type' => 'POST', success => 'js:function(). ...'}。
  • 在声明该数组之前,放置一个 if 语句来检查该条件。
【解决方案2】:

这样解决:

<input type="checkbox" id="chk">
<?php 
        $url1 = $this->createUrl('/item/add');
        $url2 = $this->createUrl('/item/remove');
        $js = '
        $(\'#chk\').change(function(){
            $.post(this.checked ? "'.$url1.'" : "'.$url2.'", function(data) {
                $("#items").html(data);
            });
        });
        ';
        Yii::app()->clientScript->registerScript('chk', $js);
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    • 2013-03-23
    相关资源
    最近更新 更多