从mysql填充@mentions数组

时间:2013-10-04 10:28:40

标签: php jquery mysql

所以,我正在使用提及.js库将@mentionUser功能添加到我的应用程序中。我想知道用我构建的数组替换数组的最佳方法是什么,从我的数据库中获取用户。

我已经构建了查询以获取用户,我只是不确定如何在jQuery中使用生成的数组。

PHP代码(主要是伪代码,将使用PDO)

$fetchUsers = mysql_query("SELECT * FROM users1 WHERE organisationId = '1'");
$results = array();
while ($row = mysql_fetch_assoc($fetchUsers)) {
    $results[] = $row['name'];
}

非常感谢!

<textarea id="full"></textarea>

<script>
    $("#full").mention({
    delimiter: '@',
    users: 
    [{
        username: "ashley"
    }, { 
        username: "roger"
    }, { 
        username: "frecklefart123"
    }]
});
</script>

1 个答案:

答案 0 :(得分:1)

让您的PHP脚本返回JSON编码的用户对象数组......

$fetchUsers = mysql_query("SELECT * FROM users1 WHERE organisationId = '1'");
$results = array();
while ($row = mysql_fetch_assoc($fetchUsers)) {
    $results[] = array(
        'username' => $row['name']
    );
}

echo json_encode($results);

然后使用jQuery的$.getJSON ...

$.getJSON('/users.php', function(data) {
    $("#full").mention({
        delimiter: '@',
        users: data
    });
});

简单:)

回答你的第二个问题;使用一些正则表达式(注意我的例子非常基本)...

$string = '@matt @james @seb';

if (preg_match_all('/@(\w+)/i', $string, $matches)) {
    $mentions = $matches[1];
}