簡體   English   中英

Yii2 dropdownlist 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();`

如果希望表單由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();

您可以在此處找到更多信息。

UPDATE

順便說一下,您應該重新檢查在用戶/創建頁面中檢索ID的方式。 只是為了檢查get參數的發送方式,我建議你在該動作中創建一個var_dump ($_GET) IE:

在默認的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'];
}

如果我對某些事情不清楚,請告訴我,我會為您更新答案。

...'onchange'=>'window.location =“/ user / ..”'; ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM