在自动完成列表中插入数组值

时间:2013-11-20 12:52:05

标签: javascript php jquery

我目前正在制作一个自动填写的表单。现在,建议的值来自JavaScript列表:

<script type="text/javascript">
$('#textarea').textext({
    plugins : 'autocomplete suggestions tags filter',

    suggestions: [
        'Basic',
        'Cobol',
        'Go'
    ]
});

我正在使用一个函数从数据库中获取我的名字列表:

    $users->selectFirstnameSurname();
    $userQueryResult = $users->queryResult;
    $listOfNames = $users->listOfNames;

我通过在数据库中附加firstname和lastname来获取值,如下所示:

    public function selectFirstnameSurname() {
    $query = $this->db->prepare("SELECT * FROM `users` ORDER BY `username`");
    $listOfNames[] = '';

    try{
        $query->execute();
        foreach ($query as $row) {
                array_push ($listOfNames, $row['firstname'].' '.$row['lastname']);
            }
        $this->queryResult = $query->fetch();
        $this->listOfNames = $listOfNames;

        } catch(PDOException $e){

            die($e->getMessage());
        }
    }

我想要做的是获取数组$listOfNames的值并替换脚本中的建议。

1 个答案:

答案 0 :(得分:0)

您需要有一种方法来传递数据集,以便您的JavaScript代码可以访问它。如果您的数据集是静态的并且JS进行过滤,那么您可以将它们静态转储为JS对象(JSON),如

[
  { 
   "id": 1,
   "label": "user name"
  },
  {
    "id": 2,
    "label": "other user"
  }
]

JSON的确切格式当然取决于您的自动完成实现。

或者为了使它更具动态性(如果你有一个大数据集,那就好了)你可以通过AJAX调用一个简单的API来获取数据。如果您需要更多详细信息,可以参考http://www.pontikis.net/blog/jquery-ui-autocomplete-step-by-step

等教程