Yii独立linkBut​​ton不在表单标签内工作

时间:2015-03-06 18:27:55

标签: php yii hyperlink

我正在使用Yii,我有一个包含在标签中的表单。在其中一个选项卡中,我需要独立于表单内容放置一个链接(使用参数调用controller/action)。 我曾尝试使用CHtml::linkButton,但它不起作用。

表格的代码方案如下:

<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'project-form',
    'enableAjaxValidation'=>true,
)); ?>

//...input elements

<?php echo CHtml::linkButton('Download',
    array(
        'submit'=>$this->createUrl('controller/action'),
        'params'=>array(
                'results'=>CJSON::encode(array('foo'=>'bar'))
        ))
); ?>

//...other input elements

<?php $this->endWidget(); ?>

当我点击链接时没有任何反应。如果我将linkButton代码放在表单之外,它就能正常工作。

有解决方法吗?

2 个答案:

答案 0 :(得分:0)

在这种情况下,您应该使用ajaxLink

示例:

echo CHtml::ajaxLink(
$text = 'Click me', 
$url = '/', 
$ajaxOptions=array (
    'type'=>'POST',
    'dataType'=>'json',
    'success'=>'function(html){ jQuery("#your_id").html(html); }'
    ), 
$htmlOptions=array ()
);

答案 1 :(得分:0)

您似乎正在尝试使用按钮让用户下载某种文件。对于这种情况,AJAX无法正常工作,因为它无法将文件保存到用户计算机。

您要做的只是创建锚标记。 linkBut​​ton函数设计用于提交当前表单的按钮。如果你正在使用bootstrap,下面的内容也会让它看起来像一个按钮。

CHtml::link('Download', array('controller/action', 'myparam' => 'paramvalue'), array('class', 'btn btn-primary'));

确保为下载文件设置了正确的标题。