Yii 独立链接按钮在表单标签中不起作用
Yii independent linkButton not working within form tags
我正在使用 Yii,我有一个包含在选项卡中的表单。在其中一个选项卡中,我需要放置一个独立于表单内容的 link(使用参数调用 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(); ?>
当我点击 link 时没有任何反应。如果我将 linkButton
代码放在表单之外,它就可以正常工作。
有解决办法吗?
在这种情况下,您应该使用 ajaxLink
示例:
echo CHtml::ajaxLink(
$text = 'Click me',
$url = '/',
$ajaxOptions=array (
'type'=>'POST',
'dataType'=>'json',
'success'=>'function(html){ jQuery("#your_id").html(html); }'
),
$htmlOptions=array ()
);
您似乎在尝试使用按钮让用户下载某种文件。对于这种情况 AJAX 将不起作用,因为它无法将文件保存到用户计算机。
您要做的只是创建锚标记。函数 linkButton 的设计目的是成为一个提交当前表单的按钮。如果您使用 bootstrap,下面的内容也会使它看起来像一个按钮。
CHtml::link('Download', array('controller/action', 'myparam' => 'paramvalue'), array('class', 'btn btn-primary'));
确保为下载文件设置正确的 headers。
我正在使用 Yii,我有一个包含在选项卡中的表单。在其中一个选项卡中,我需要放置一个独立于表单内容的 link(使用参数调用 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(); ?>
当我点击 link 时没有任何反应。如果我将 linkButton
代码放在表单之外,它就可以正常工作。
有解决办法吗?
在这种情况下,您应该使用 ajaxLink
示例:
echo CHtml::ajaxLink(
$text = 'Click me',
$url = '/',
$ajaxOptions=array (
'type'=>'POST',
'dataType'=>'json',
'success'=>'function(html){ jQuery("#your_id").html(html); }'
),
$htmlOptions=array ()
);
您似乎在尝试使用按钮让用户下载某种文件。对于这种情况 AJAX 将不起作用,因为它无法将文件保存到用户计算机。
您要做的只是创建锚标记。函数 linkButton 的设计目的是成为一个提交当前表单的按钮。如果您使用 bootstrap,下面的内容也会使它看起来像一个按钮。
CHtml::link('Download', array('controller/action', 'myparam' => 'paramvalue'), array('class', 'btn btn-primary'));
确保为下载文件设置正确的 headers。