【问题标题】:Two submit buttons, one form (Yii)两个提交按钮,一个表单(Yii)
【发布时间】:2012-04-20 07:11:00
【问题描述】:

我的表单中有两个 CHtml::submitButton(),即“接受”和“拒绝”。每个按钮都有一个特定的 ID ...当按下两个按钮中的任何一个时,我想在我的控制器中触发一个动作。下面是代码sn-ps。

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

查看

<?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.
}

}

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

当我以这种方式实现它时。控制器端的获取值为空。我做错了什么?或者有没有其他办法解决这个问题?

【问题讨论】:

  • 请发布您的 HTML 代码,而不是生成它的 PHP 代码。
  • 你为什么不尝试用 $_REQUEST 代替 $_GET?

标签: php forms button yii


【解决方案1】:

你忘了给提交按钮起一个名字(除非你的框架做了一些我们不知道的魔法——你真的应该发布生成的 HTML 代码!)。

如果这样做,$_GET['buttonname'] 中的值将是它的 (而不是它的 id),即 AcceptReject。一旦你进入 i18n,这就会变得非常混乱,所以你可能想为按钮使用不同的 名称,然后检查 isset($_GET['buttonname1'])isset($_GET['buttonname2'])

【讨论】:

  • 感谢 ThiefMaster 的快速回复。
  • 所以我应该这样做 'accept', 'name' => accept)); ?>
  • 好的...在$_GET[]中,应该是$_GET['Accept']还是$_GET['accept']..?
  • print_r($_GET); 对你来说是件好事...该数组中的键是字段名称,所以它是小写的accept/reject
【解决方案2】:

这是您想要实现的代码示例:

查看:

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

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

注意:我添加了名称参数。由于不向用户显示名称,您可以使用接受而不是接受。

控制器:

public function actionAcceptUserRegistration() {

if(isset($_GET['accept'])) {
     //accepted
} else if(isset($_GET['reject'])) {
     //rejected
}
//I recommend using POST method instead of GET for posting the form.
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-29
    • 1970-01-01
    • 2010-10-07
    • 2016-01-18
    • 2017-01-05
    相关资源
    最近更新 更多