1

私のフォームには 2 つの CHtml::submitButton() があります。つまり、「承認」と「拒否」です。各ボタンには特定の ID があります... 2 つのボタンのいずれかが押されると、コントローラーでアクションをトリガーしたいと思います。以下はコードスニペットです。

================================================== =======

意見

<?php
echo CHtml::beginForm('mycontrollerName/AcceptUserRegistration','get');
?>

<?php echo CHtml::submitButton('Accept', array('id' => 'accept')); ?>
<? echo '&nbsp;&nbsp;&nbsp;'; ?>
<?php echo CHtml::submitButton('Reject', array('id' => 'reject')); ?> 
<?php echo CHtml::endForm(); ?>

================================================== ======

コントローラ

public function actionAcceptUserRegistration() {

$value = $_GET['id'];

if($value == "accept"){
//will do something here
}

if($value == "reject"){
//will do something here.
}

}

================================================== ====================

このように実装すると。コントローラー側の get 値は空です。私は何を間違っていますか?または、これを回避する他の方法はありますか?

4

2 に答える 2

4

送信ボタンに名前を付けるのを忘れました(フレームワークが私たちが知ることができない魔法を実行しない限り、生成されたHTMLコードを実際に投稿する必要があります!)。

その場合、の値は$_GET['buttonname']その(idではなく)、つまりAcceptまたはになりRejectます。これは、i18nに入るとすぐにかなり厄介になるため、ボタンに別の名前を使用してから、チェックisset($_GET['buttonname1'])してisset($_GET['buttonname2'])

于 2012-04-20T07:14:13.207 に答える