下拉列表的Yii回发值

时间:2014-04-20 12:14:45

标签: post yii html.dropdownlistfor

如标题中所述,我'尝试使用下拉列表来发布后页。 该帖子在控制器中接收,但所选值为空。 这是我的下拉列表

<?php echo CHtml::dropDownList('groupe',$groupe, 
array("A"=>"A","B"=>"B","C"=>"C","D"=>"D","E"=>"E","F"=>"F","G"=>"G","H"=>"H"),
array(
'prompt'=>'--Choisir un groupe--',
'submit'=>CController::createUrl('classement'),
//'data'=>array('groupe'=>'js:this.value'),
));  ?>

这是我的控制器

public function actionClassement($groupe="")
    {echo $groupe;
            if(isset($_POST['groupe'])){echo $_POST['groupe']."ici=".$groupe;
                $groupe = $_POST['groupe'];
            }echo 'test';
            $model = Team::model()->getClassementByGroupe($groupe);
            $games = array();
            $games = Game::model()->getGameByGroupe($groupe);
            //echo '<pre>test';echo print_r($model);echo '</pre>';
            $this->render('classement',array(
                    'model'=>$model,
                    'groupe'=>$groupe,
                    'games'=>$games,
            ));
    }

感谢您的帮助,因为我没有发现我的错误:-s

1 个答案:

答案 0 :(得分:0)

您需要在表单中包装下拉列表。这很有效。如果有$groupe变量,请注意$_GET。您的组合正在发布,因此您需要使用$_POST['groupe']

<form method="post" action="<?= $this->createUrl('') ?>">
  <?php
  echo CHtml::dropDownList('groupe', $groupe, array(
      "A" => "A",
      "B" => "B",
      "C" => "C",
      "D" => "D",
      "E" => "E",
      "F" => "F",
      "G" => "G",
      "H" => "H"
          ), array(
      'prompt' => '--Choisir un groupe--',
      'submit' => CController::createUrl('classement'),
          //'data'=>array('groupe'=>'js:this.value'),
  ));
  ?>


</form>

我删除了用于测试控制器的模型。

public function actionClassement($groupe = "") {
  echo $groupe;
  if (isset($_POST['groupe'])) {
    echo $_POST['groupe'] . "ici=" . $groupe;
    $groupe = $_POST['groupe'];
  }echo 'test';
//   $model = Team::model()->getClassementByGroupe($groupe);
//   $games = array();
//   $games = Game::model()->getGameByGroupe($groupe);
  //echo '<pre>test';echo print_r($model);echo '</pre>';
  $this->render('view', array(
      'groupe' => $_POST['groupe'],
  ));
}