php 我如何在Yii2上的gridview中创建一个select(select List)

3df52oht  于 2023-11-16  发布在  PHP
关注(0)|答案(1)|浏览(112)

我试图创建一个选择,为发送选定的值在一个apache后,我搜索如何做到这一点,但我看到大多数情况下,选择必须填充数据库中的数据,这是不是这样的。我只需要用户选择两个值,我设法创建营地至少在视觉上
Field inside the gridview
我用这段代码做到了:

[
                    'attribute' => 'warehouse',
                    'label' => Yii::t('wms', 'Almacen'),
                    'vAlign' => 'middle',
                    'value' => function ($model) {
                        return Html::dropDownList('w.id', 'name', 
                        ['1' => 'Sym 1', 
                         '2' => 'Sym 2',
                        ], 
                        ['id' => 'Almacen', 'class' => 'form-control'
                    ]);
                    },
                    'format' => 'raw'
                ],

字符串
但在选择它的时刻,它不采取的价值:

$(keys).each(function(i, key) {
                        var order = parseInt($('tr[data-key=' + key + ']').find('.warehouse').html());
                        units.push({
                            key: key,
                            order: warehouse,
                            value: $('#pa-'+key).val()
                        })
                    });


这是一个快速修复,但在我看来,如果我从数据库调用它,你只能从gridview发送数据回来,但我可能错了,有点新yii2和许多方法来做这里的事情。这不是一个搜索框,是一个项目列表,人们选择其中的一个并发送数据回来

4smxwvx5

4smxwvx51#

首先,确保在GridView中正确地生成了您的数据库。您的代码看起来很适合这一部分,但是如果GridView中有多行,您可能希望确保每个数据库都有一个唯一的id属性,对吗?
尝试修改数据库的id,使其对于每一行都是唯一的:

'value' => function ($model) {
    return Html::dropDownList('w.id', 'name', 
        ['1' => 'Sym 1', '2' => 'Sym 2'], 
        ['id' => 'Almacen-' . $model->id, 'class' => 'form-control']
    );
},

字符串
你也可以稍微改变一下你的JavaScript,也许你需要调整选择器来正确地定位对象。

$(keys).each(function(i, key) {
    var warehouse = $('#Almacen-' + key).val();
    units.push({
        key: key,
        warehouse: warehouse,
        value: $('#pa-' + key).val() // Ensure this is correct
    });
});


您应该尝试确保您的Ajax请求被正确地设置为将units数组发送到服务器。
同样在服务器端,试着看看你是否正确地处理了传入的数据。这将取决于你的Yii2控制器的操作。
在JavaScript中使用控制台日志,在Yii2应用程序中使用调试日志来跟踪问题可能发生的位置。

相关问题