2017-12-23 1 views
0

so möchte ich jquery die automatische Vervollständigung in einem Textfeld verwenden, werden die Werte, die ich aus einer Abfrage kommen verwenden möchten (aus ‚RetornaTabelas‘ Klasse in Yii2) in dieser Klasse bekam ich die Methode GetTableNames:YII2 Wie man Abfrageergebnis in jquery Autocomplete sendet?

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); 
    } 

} 

Meine Javascript-Funktion:

$(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}); 

});

Antwort

0
  1. in Ihrem Controller/Aktion, geben Sie Ihre Daten als Array zurück. etwas wie oder einfach eine \yii\helpers\Json::encode(...) 'd Objekt
  2. rufen Sie diese URL von Ihrem Javascript mit Params. <?= Url::to(['mycontroller/myaction']) ?> ist mein Weg, um die URL ohne Hardcoding
zu bekommen