选择2和Ajax加载,搜索但我可以';t在Yii2框架中选择结果

选择2和Ajax加载,搜索但我可以';t在Yii2框架中选择结果,ajax,yii2,select2,Ajax,Yii2,Select2,我正在使用:Select2和Ajax加载教程: 我有一个问题,脚本工作,但我不能选择一个值。我可以搜索,但我想从结果中选择。我单击一个,什么也没发生,值没有进入输入 表格: 问题出在这方面: $query->select('surname_id, surname_name AS text') ->from('surname') ->where(['like', 'surname_name', $q]) ->limit(20); 工作,然后我编辑代

我正在使用:Select2和Ajax加载教程:

我有一个问题,脚本工作,但我不能选择一个值。我可以搜索,但我想从结果中选择。我单击一个,什么也没发生,值没有进入输入

表格:

问题出在这方面:

$query->select('surname_id, surname_name AS text')
    ->from('surname')
    ->where(['like', 'surname_name', $q])
    ->limit(20);
工作,然后我编辑代码以:

$query->select('surname_id AS id, surname_name AS text')
    ->from('surname')
    ->where(['like', 'surname_name', $q])
    ->limit(20);

如果我理解正确,你的结果应该是

$out['results'] = [
    'id' => your_id,
    'text' => some text,
];
但是,如果您看到您的if条件,您选择的是与
id
不同的
id
,因此可以使用别名或使用foreach循环来访问
$data
,例如

foreach($data as $key=>$value){
    $out['results'] = [
        'id' => $value->surname_id,
        'text' => $value->text,
    ]; 
}

希望这将对您有所帮助。

问题在于将select重定向到字段的id。

谢谢您的回答。我发现我的代码有问题。我用好的代码编辑我的第一篇文章。谢谢
$out['results'] = [
    'id' => your_id,
    'text' => some text,
];
foreach($data as $key=>$value){
    $out['results'] = [
        'id' => $value->surname_id,
        'text' => $value->text,
    ]; 
}