Yii2 下拉列表 onchange 重定向到 URL
Yii2 dropdownlist onchange Redirect to URL
我希望将此代码重定向到 /user/create
我该怎么做?
echo Html::beginForm();
echo Html::activedropDownList(
$model, //name
'COMPANY_ID', //select
$companyList, //items
['onchange'=>'this.form.submit()'] //options
);
echo Html::endForm();`
...
'onchange' => 'window.location = "/user/.."';
...
如果你想让表单被users/create处理,你必须在beginForm函数中定义一个动作
echo Html:beginForm(['users/create'])
查看 http://www.yiiframework.com/doc-2.0/yii-helpers-basehtml.html#beginForm()-detail 了解更多信息。
默认情况下,表单将有 action = ''
和 method = 'post'
。你必须改变它:
echo Html::beginForm(['method' => 'get', 'action' => 'user/create']);
echo Html::activedropDownList(
$model, //name
'COMPANY_ID', //select
$companyList, //items
['onchange'=>'this.form.submit()'] //options
);
echo Html::endForm();
您可以在文档中找到更多信息 here。
更新
顺便说一下,您应该重新检查在 user/create 页面中检索 ID 的方式。只是为了检查 get 参数是如何发送的,我建议你在那个动作中做一个 var_dump ($_GET)
。即:
在默认的 ContacForm 中,如果我将方法更改为 'get',当我打印 var_dump ($_GET)
并提交时,它将显示:
array (size=3)
'r' => string 'site/contact' (length=12)
'ContactForm' =>
array (size=5)
'name' => string 'c' (length=1)
'email' => string 'teste@teste.com.br' (length=18)
'subject' => string 'safd' (length=4)
'body' => string 'asfas' (length=5)
'verifyCode' => string 'eaxpzwp' (length=7)
'contact-button' => string '' (length=0)
我需要的输入在一个数组中 "ContactForm"。那是因为我的表格来自模型 ContactForm.php
。因此,请记住 users/create 中的这一点以正确调用 id。可能会是这样的:
$get = Yii::$app->request->get(); //retrieve all get params in the url, even the route.
if (isset($get['ContactForm'])) { //Replace by the name of the form's model.
$COMPANY_ID = $get['ContactForm']['COMPANY_ID'];
}
如果我对某些事情不清楚,请告诉我,我会为您更新答案。
我希望将此代码重定向到 /user/create 我该怎么做?
echo Html::beginForm();
echo Html::activedropDownList(
$model, //name
'COMPANY_ID', //select
$companyList, //items
['onchange'=>'this.form.submit()'] //options
);
echo Html::endForm();`
... 'onchange' => 'window.location = "/user/.."'; ...
如果你想让表单被users/create处理,你必须在beginForm函数中定义一个动作
echo Html:beginForm(['users/create'])
查看 http://www.yiiframework.com/doc-2.0/yii-helpers-basehtml.html#beginForm()-detail 了解更多信息。
默认情况下,表单将有 action = ''
和 method = 'post'
。你必须改变它:
echo Html::beginForm(['method' => 'get', 'action' => 'user/create']);
echo Html::activedropDownList(
$model, //name
'COMPANY_ID', //select
$companyList, //items
['onchange'=>'this.form.submit()'] //options
);
echo Html::endForm();
您可以在文档中找到更多信息 here。
更新
顺便说一下,您应该重新检查在 user/create 页面中检索 ID 的方式。只是为了检查 get 参数是如何发送的,我建议你在那个动作中做一个 var_dump ($_GET)
。即:
在默认的 ContacForm 中,如果我将方法更改为 'get',当我打印 var_dump ($_GET)
并提交时,它将显示:
array (size=3)
'r' => string 'site/contact' (length=12)
'ContactForm' =>
array (size=5)
'name' => string 'c' (length=1)
'email' => string 'teste@teste.com.br' (length=18)
'subject' => string 'safd' (length=4)
'body' => string 'asfas' (length=5)
'verifyCode' => string 'eaxpzwp' (length=7)
'contact-button' => string '' (length=0)
我需要的输入在一个数组中 "ContactForm"。那是因为我的表格来自模型 ContactForm.php
。因此,请记住 users/create 中的这一点以正确调用 id。可能会是这样的:
$get = Yii::$app->request->get(); //retrieve all get params in the url, even the route.
if (isset($get['ContactForm'])) { //Replace by the name of the form's model.
$COMPANY_ID = $get['ContactForm']['COMPANY_ID'];
}
如果我对某些事情不清楚,请告诉我,我会为您更新答案。