javascript - instalar - yii2 advanced tutorial
Lista desplegable Yii2 onchange Redirigir a URL (3)
... ''onchange'' => ''window.location = "/ user / .."''; ...
Me gustaría que este código se redirija a / user / create ¿Cómo lo hago?
echo Html::beginForm();
echo Html::activedropDownList(
$model, //name
''COMPANY_ID'', //select
$companyList, //items
[''onchange''=>''this.form.submit()''] //options
);
echo Html::endForm();`
Por defecto, el formulario tendrá action = ''''
y method = ''post''
. Debes cambiar eso:
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();
Puede encontrar más información en el documento aquí .
ACTUALIZAR
Por cierto, debería volver a verificar la forma en que está recuperando la identificación en su página de usuario / creación. Solo para comprobar cómo se envía el parámetro get, le recomendaría que haga un var_dump ($_GET)
en esa acción. ES DECIR:
En el ContacForm predeterminado, si cambio el método a ''get'', cuando imprima var_dump ($_GET)
y lo envíe, se mostrará:
array (size=3)
''r'' => string ''site/contact'' (length=12)
''ContactForm'' =>
array (size=5)
''name'' => string ''c'' (length=1)
''email'' => string ''[email protected]'' (length=18)
''subject'' => string ''safd'' (length=4)
''body'' => string ''asfas'' (length=5)
''verifyCode'' => string ''eaxpzwp'' (length=7)
''contact-button'' => string '''' (length=0)
Las entradas que necesito están dentro de una matriz "ContactForm". Y eso es porque mi formulario proviene del modelo ContactForm.php
. Por lo tanto, tenga esto en cuenta en los usuarios / crear para llamar a la identificación correctamente. Probablemente será algo así como:
$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''];
}
Avíseme si no tenía claro algo y actualizaré la respuesta por usted.
Si desea que los usuarios / create procesen el formulario, debe definir una acción en la función beginForm
echo Html:beginForm([''users/create''])
Consulte http://www.yiiframework.com/doc-2.0/yii-helpers-basehtml.html#beginForm()-detail para obtener más información.