Yii2 如何实现二级联动?
视图场景:点击一个分类,更换一个URL
<?php $form = ActiveForm::begin([
'id' => strtolower($model->formName()),
'action' => ['/apitools/default/index']
]); ?>
<?= $form->field($model, 'type')->dropDownList(
ApiTool::getType(),
['prompt' => '选择一个分类']
) ?>
<?= $form->field($model, 'url')->dropDownList(
[],
['prompt' => '选择一个url']
) ?>
<?php ActiveForm::end(); ?>jQuery
关于 JsBlock,参考官方文档
<?php JsBlock::begin() ?>
<script>
jQuery("#apitool-type").change(function () {
var html = '';
$.ajax({
url: '<?= \yii\helpers\Url::to(["/apitools/default/type-list"]) ?>',
type: 'GET',
dataType: 'json',
data: {type: $(this).val()},
success: function (msg) {
$.each(msg, function (key, val) {
html += '<option value="' + key + '">' + val + '</option>';
});
$("#apitool-url").html(html);
}
})
});
});
</script>
<?php JsBlock::end() ?>Controller
返回JSON的 key-value
public function actionTypeList()
{
$type = \Yii::$app->request->get('type');
return Json::encode(ApiTool::getUrl($type));
}
页:
[1]