【问题标题】:Yii 2 GridView Search Within ActiveFormYii 2 GridView 在 ActiveForm 中搜索
【发布时间】:2018-07-22 07:51:51
【问题描述】:

使用 Yii 2 ActiveForm,我正在尝试添加 GridView 以搜索选择要添加到关系中的项目(数据库是 MongoDB)

我想包含一个“搜索和选择”GridView 小部件,并将项目作为 id 数组添加到 ActiveForm 模型中。

例如:

<?php $form = ActiveForm::begin();?>
    <?=$form->field($model, 'summary')->textInput()?>

<?=
GridView::widget([
    'id' => 'productSearch',
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'pjax' => true,
    'columns' => [
        'name',
    ],
])
?>
<!-- Display the Assigned Products selected by productSearch --> 
    <?=
GridView::widget([
    'id' => 'assignedProducts',
    'dataProvider' => $model->AssignedProducts,
    'columns' => ([
        'name',
    ]),
]);?>

<?php ActiveForm::end();?>

但是,当我在 ActiveForm::begin() / ActiveForm::end() 标签中包含 GridView 搜索时,被调用的“POST”会触发表单。

是否有关于进行此类设置的指南?

或者我需要从头开始创建整个表单吗?

我知道我很可能必须使用一点jQuery来从GridView选择正确的“选定”项目吗?

【问题讨论】:

  • 我想了解的是,如果您使用第一个 gridview 进行搜索并选择您希望它出现在它下面的下一个 GridView 中的任何项目?对吗?
  • 我不认为你需要混合两个小部件 ActiveForm 和 GridView。您只需要 Gridview 并在 SearchModel 中定义关系。网上有很多例子,例如yiiframework.com/doc/guide/2.0/en/output-data-widgets。 ActiveForm 用于插入新记录或更新记录,而不是用于搜索。
  • @lubosdz 说 ActiveForm 不能用于搜索是不正确的,你从 GII 生成默认的 CRUD 并获取 _serch.php 文件进行搜索还是不要?

标签: yii2 yii2-grid


【解决方案1】:

如果您将 GridView 与 Search 结合使用,则应使用 &lt;?= Html::beginForm() ?&gt; 而不是 ActiveForm。要获取复选框,而不是 Javascript,您可以在表单发布上获取复选框的 ID。看看这个:How I can process a checkbox column from Yii2 gridview?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    相关资源
    最近更新 更多