YII2如何将查询结果发送到jquery自动完成?

问题描述 投票:0回答:1

所以我想在textarea中使用jquery自动完成,我想要使用的值来自一个查询(来自Yii2中的'RetornaTabelas'类)在这个类中我得到了方法getTableNames:

public function getTableNames($db) {

    $queryTemp = new Query;
    $queryTemp->select('con_name')
            ->from('MyTable');
    $tablesName = $queryTemp->All();
    $commandAux = $queryTemp->createCommand();
    $tablesName = $commandAux->queryAll();

    foreach ($tablesName as $tname) {

        $sql= "
        SELECT TABLE_NAME 
        FROM INFORMATION_SCHEMA.TABLES
        WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA='".$tname."';
        ";

        $transaction = Yii::$app->db->beginTransaction();
        $connection = Yii::$app->db;
        $command = $connection->createCommand($sql)->execute();
        $transaction->commit();

        return BaseJson::encode($command);
    }

}

我的Javascript函数:

$(function() {



    $.getJSON('HOW TO PUT THE DATA FROM MY CLASS HERE ?', function(data){
        var cliente = [];

    // Armazena na array capturando somente o nome do cliente
    $(data).each(function(key, value) {
        table.push(value);
    });

    // Chamo o Auto complete do JQuery ui setando o id do input, array com os dados e o mínimo de caracteres para disparar o AutoComplete
    $('.ace_text_input').autocomplete({ source: table, minLength: 3});

});

jquery autocomplete yii2
1个回答
0
投票
  1. 在您的控制器/操作中,将数据作为数组返回。像return Post::find()->where(['slug'=>$slug])->asArray()->all();或只是返回一个\yii\helpers\Json::encode(...)'d对象
  2. 用你的javascript用params调用这个url。 <?= Url::to(['mycontroller/myaction']) ?>是我无需硬编码即可获取网址的方法
© www.soinside.com 2019 - 2024. All rights reserved.