在创建管理页面时,如何在yii框架中添加按钮并为其编写自己的操作代码? 我在视图文件中的代码是:
<?php echo CHtml::beginForm('Protected/GreetingsController/actionSubmit','get');?>
<?php echo CHtml::submitButton('submit',array('SiteController'=>'actionIndex'));?>
<?php echo CHtml::endForm(); ?>
答案 0 :(得分:2)
CHtml::beginForm()
只会将<form>
标记放入您的HTML。您需要了解CHtml函数如:button(),link(),ajaxButton()等等,以使用属性(例如$htmlOptions数组)生成一些HTML作为满足您需求的选项。
对于这种情况,您希望在某些action
中指向一个确切的controller
,您可以使用名为beginWidget的方法,如下所示:
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'login-form',
'action' => "/controller-name/action-name",
)
);?>
<?php echo CHtml::submitButton('Save'); ?>
<?php $this->endWidget(); ?>
触发时按钮()将发送到指定的action
。
答案 1 :(得分:0)
当您使用yii框架时,控制器负责显示视图页面。 现在,您在视图中有一个表单,并且您希望向该表单添加操作。 您转到该特定控制器并在此处调用该表单视图。
例如。你在这里有一份注册表。
<h2>Registration Form</h2>
<div class="form">
<?php echo CHtml::beginForm(); ?>
<?php echo CHtml::errorSummary($model); ?>
<div class="row">
<?php echo CHtml::activeLabel($model,'User Name'); ?>
<?php echo CHtml::activeTextField($model,'username') ?>
</div>
<div class="row">
<?php echo CHtml::activeLabel($model,'email'); ?>
<?php echo CHtml::activeTextField($model,'email') ?>
</div>
<div class="row">
<?php echo CHtml::activeLabel($model,'password'); ?>
<?php echo CHtml::activePasswordField($model,'password') ?>
</div>
<div class="row">
<?php echo CHtml::activeLabel($model,'Retype Password'); ?>
<?php echo CHtml::activePasswordField($model,'retypepassword') ?>
</div>
<div class="row submit">
<?php echo CHtml::submitButton('Register'); ?>
</div>
<?php echo CHtml::endForm(); ?>
</div><!-- form -->
现在我没有在视图注册表单页面中插入任何操作。
现在我可以将这个表格访问到我想要的任何控制器。
<?php
class yourController extends Controller
{
public function actionIndex() {
$model = new RegisterForm ;
$this->render('register',array('model'=>$model));
}
}
现在你可以随心所欲地做所有事情......
您应该添加模型,因为如果您没有添加模型类,那么我将给出错误。
您可以看到yii提供的完整文档,以便您轻松理解。
链接。 http://www.yiiframework.com/doc/guide/1.1/en/form.model
由于