gpt4 book ai didi

javascript - 将 javascript 值传递给 Yii2 中的表单操作 URL

转载 作者:行者123 更新时间:2023-12-03 05:32:56 27 4
gpt4 key购买 nike

我正在尝试将 javascript 中的值放入 Yii2 中的表单操作中是否可以?更具体地说,我需要为下拉列表中选择的每个选项进行 URL 更改。

views/site.php 中的表单

$form = ActiveForm::begin([
'id' => 'form',
'method' => 'POST',
'action' => Url::to(['programas/'.Tours::findOne(['pk' => ])->programa]),
]);

<?= $form->field(new \app\models\Tours(), 'nombre')->dropDownList([],
[
'prompt' => 'Programa',
'id' => 'child1_child2',
'onchange' => 'updateValue(this.value)',
]
)->label(false); ?>

JS文件

    function updateValue(val){
x = document.getElementById("test").value;
// document.getElementById("form").action = "programas/";
}

所以,我用 JS 来挽救所选选项的值,但我需要将其放在这里 'pk' => 'value'

其中 value 是 #child1_child2 选定的选项值。

'action' => Url::to(['programas/'.Tours::findOne(['pk' =>  ])->programa])

感谢您的帮助。

最佳答案

您可以使用以下方法之一并进行一些修改:

//pk => programa
$data = [
1 => 'programa1',
2 => 'programa2',
3 => 'programa3',
];

1)使用JS

<?= $form->field(new \app\models\Tours(), 'nombre')->dropDownList($data, ['prompt' => 'Programa'])->label(false); ?>

JS

$this->registerJs('
$("#dropdownID").change(function() {
var text = $("#dropdownID option:selected").text();
$("#formID").attr("action", "/pathtoproject/programas/" + text);
});
', \yii\web\View::POS_END);

2) 使用 Ajax 调用

<?= $form->field(new \app\models\Tours(), 'nombre')->dropDownList($data, [
'prompt' => 'Programa',
'onchange'=> '$.get( "'.Url::toRoute('get-action').'", { id: $(this).val() } )
.done(function( data ) {
$("#formID").attr("action", data);
}
);'
])->label(false); ?>

Controller

public function actionGetAction($id)
{
$name = Tours::findOne(['pk' => $id])->programa];
echo \yii\helpers\Url::to(['programas/'.$name]);
}

关于javascript - 将 javascript 值传递给 Yii2 中的表单操作 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40860994/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com