我正在制作语言选择器并关注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(); ?>
答案 0 :(得分:0)
我确信您的代码正常,但您实际上是在提交表单吗?您应该有一个jquery来检测下拉列表何时更改并将其提交到服务器并刷新页面。其他一切都是合理的。
我不知道&#39;提交&#39; =&gt;&#39;&#39;确实