php - Yii2 依赖于模态中的文本输入和列表
问题描述
我有一个用于操纵我的模型的模态。可以在这里找到一个简单的示例。
控制器 ( controllers/ModalController.php
) 中处理表单输入的操作如下所示:
public function actionShow() {
$model = new Modal();
if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())) {
Yii::$app->response->format = Response::FORMAT_JSON;
return ActiveForm::validate($model);
} else {
if ($model->load(Yii::$app->request->post())) {
Yii::$app->session->setFlash('success', Yii::t('app', 'Values {value} commited to server', ['value' => json_encode($model->toArray())]));
$this->redirect(['/modal']);
} elseif (!Yii::$app->request->isPost) {
return $this->renderAjax('show', ['model' => $model]);
}
}
}
views/show.php
以及将被加载到模态中的视图 ( ):
$items = [1 => Yii::t('app', 'first item'),
2 => Yii::t('app', 'second item'),
3 => Yii::t('app', 'third item')
];
?>
<div class="modal-show">
<?php $form = ActiveForm::begin(['id' => 'modal-show-form', 'enableAjaxValidation' => true]); ?>
<div class="row">
<div class="col-md-6">
<?= $form->field($model, 'attribute1')->input('text') ?>
</div>
<div class="col-md-6">
<?= $form->field($model, 'attribute2')->dropDownList($items,
['prompt' => Yii::t('app', '---- Select item ----')]); ?>
</div>
</div>
<?= $form->field($model, 'attribute3')->checkBox() ?>
<div class="form-group" style="clear: both;">
<?= Html::submitButton(Yii::t('app', 'Submit'), ['class' => 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>
现在我想在模式中有一个取决于输入字段的列表。例如,如果用户在输入字段中输入了一些单词,数据将从服务器获取并显示在列表中。当您为所提问题输入标题时,类似于 stackoverflow 建议。或者像krajee-depdrop这样的想法, 但带有文本输入字段。
我想应该有 ajax 或 pjax 参与其中,但我不知道如何以及从哪里开始。有人可以给我一个正确的方向吗?
解决方案
推荐阅读
- firebase - 带有通配符路径的 Firestore 云功能触发器
- ruby-on-rails - 如何查找现有客户并将其分配给发票
- qt - 使用 .osm 或 .osm.pbf 在 qt qml 中加载离线地图
- mongodb - 不使用 touch 命令重新加热 mongodb
- python - 用硒进行网页抓取,页面不加载
- r - lapply pdf 输出覆盖 pdf 而不是创建新的
- swift - 快速复制现有领域数据库的问题
- c# - 如何在五个表/视图查询中返回唯一的产品 ID?
- xml - COBOL 使用 CDATA 生成 XML 文件
- pyqt5 - 使用 pyqt5 QTableView 双击在线获取