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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了YII2如何将查询结果发送到jquery自动完成?相关的知识,希望对你有一定的参考价值。

所以我想在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});

});

答案
  1. 在您的控制器/操作中,将数据作为数组返回。像return Post::find()->where(['slug'=>$slug])->asArray()->all();或只是返回一个yiihelpersJson::encode(...)'d对象
  2. 用你的javascript用params调用这个url。 <?= Url::to(['mycontroller/myaction']) ?>是我无需硬编码即可获取网址的方法

以上是关于YII2如何将查询结果发送到jquery自动完成?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 php mysql 查询中为 jQuery 自动完成准备多维数组?

如何将 JSON 对象内的 JSON 数组传递给 jQuery 自动完成

如何将 PHP 数据从数据库发送回 JQuery 并插入到表中

Django:具有多个查询集的 jQuery 自动完成

Yii2 - ActiveForm ajax 提交

Yii2如何将表单请求发送到外部url