0

管理ページを作成しているときに、ボタンを追加してyiiフレームワークで独自のアクションコードを作成するにはどうすればよいですか?ビューファイルにあるコードは次のとおりです。

<?php echo CHtml::beginForm('Protected/GreetingsController/actionSubmit','get');?>
<?php echo CHtml::submitButton('submit',array('SiteController'=>'actionIndex'));?>
<?php echo CHtml::endForm(); ?>
4

2 に答える 2

2

CHtml::beginForm()<form>HTML にタグを付けるだけです。button()、link()、ajaxButton() などの CHtml 関数は、必要に応じて属性 ( $htmlOptions配列など) をオプションとして使用して HTML を生成するものであることを理解する必要があります。

この場合、正確な値を指定したい場合は、action次のようにbeginWidgetcontrollerというメソッドを使用できます。

<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'login-form',
    'action' => "/controller-name/action-name",
  )
);?>

<?php echo CHtml::submitButton('Save'); ?>

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

button() が起動されると、指定された に送信されますaction

于 2012-09-26T12:18:16.293 に答える
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

ありがとう

于 2013-11-01T07:45:44.997 に答える