YII语言选择器不回发到控制器

时间:2014-02-26 16:30:41

标签: php yii

我正在制作语言选择器并关注this wiki。我可以实现小部件,但是当我尝试下拉列表时它不会进行回发。对于控制器,我认为控制器应该是:components / Controller.php而不是components / MyController.php。但无论如何都不起作用。有谁知道该怎么办?我想在这里找不到关于捕捉回发的要点的东西......

Controller(components / controller.php):

    function init()
        {
            parent::init();
            $app = Yii::app();
            if (isset($_POST['_lang']))
            {
                $app->language = $_POST['_lang'];
                $app->session['_lang'] = $app->language;
            }
            else if (isset($app->session['_lang']))
            {
                $app->language = $app->session['_lang'];
            }
            Yii::app()->session['_lang'] = 'anders';
        }

widget类(components / LangBox.php):

class LangBox extends CWidget
{
    public function run()
    {
        $currentLang = Yii::app()->language;
        $this->render('langBox', array('currentLang' => $currentLang));
    }
}

小部件视图(components / views / langBox.php)

<?php echo CHtml::form(); ?>
    <div id="langdrop">
        <?php echo CHtml::dropDownList('_lang', $currentLang, array(
            'en_us' => 'English', 'is_is' => 'Icelandic'), array('submit' => '')); ?>
    </div>
<?php echo CHtml::endForm(); ?>

1 个答案:

答案 0 :(得分:0)

我确信您的代码正常,但您实际上是在提交表单吗?您应该有一个jquery来检测下拉列表何时更改并将其提交到服务器并刷新页面。其他一切都是合理的。

我不知道&#39;提交&#39; =&gt;&#39;&#39;确实