2
4

3 回答 3

5

使用 的action属性CActiveForm。替换'controller/acion'您的特定需求。

  <?php $form=$this->beginWidget('CActiveForm', array(
                        'id'=>'contact-form',
                        'enableClientValidation'=>true,
                        'action'=>array('controller/acion','#'=>'fragment-id')
                    )); ?>
于 2012-10-16T15:48:50.590 回答
2

在接收表单提交的控制器/动作中,一旦表单被处理,只需重定向到您想要的 URL。例如:

$this->redirect(Yii::app()->request->baseUrl."/myurl#fragment-id");

你甚至可以得到真正的幻想并使用这个简短的 jQuery 滚动来运行:

function goToByScroll(id){
    $('html,body').animate({scrollTop: $("#"+id).offset().top},'slow');
}

哪个 get 是这样调用的:

goToByScroll("theIdIWantToGoTo");
于 2012-10-16T15:49:49.363 回答
1

您正在查看错误的选项。你需要它的动作

<?php $form=$this->beginWidget('CActiveForm', array(
                    'id'=>'contact-form',
                    'action'=>$this->createUrl('')."#fragment-id",
                    'enableClientValidation'=>true,
                )); ?>

  //form here
  <?php echo CHtml::submitButton('send')); ?>

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

createUrl其为当前请求的 URL 生成 URL的空参数

于 2012-10-16T15:49:53.623 回答