我正在使用Jquery Tagit。
它提供了一个选项“AvailableTags”,它接受一组项目来填充AutoComplete。
当我将接收到的数组传递给Tagit调用时,我的ajax get调用似乎不起作用,即使它似乎正在生成我需要的相应数据(填充数组)。
AJAX
$.ajax({
type: 'get',
url: 'gettags.php',
data: "",
dataType: 'json',
success: function(data) {
sampleTags = data;
}
})
$('#singleFieldTags').tagit({
availableTags: sampleTags,
singleField: true,
singleFieldNode: $('#mySingleField'),
allowSpaces: true
});
PHP
$sql = "SELECT tag FROM tags";
$result = mysql_query($sql);
$data = array[];
while ($row = mysql_fetch_row($result)) {
$data[] = $row;
}
echo json_encode($data);
我只是试图通过变量sampleTags将返回的数组传递给Tagit的“availableTags”,但它似乎不想继续使用。
感谢您的帮助。
答案 0 :(得分:2)
$.ajax()
是异步执行的,因此您需要在success
回调中处理数据:
$.ajax({
type: 'get',
url: 'gettags.php',
data: "",
dataType: 'json',
success: function(data) {
var sampleTags = data;
$('#singleFieldTags').tagit({
availableTags: sampleTags,
singleField: true,
singleFieldNode: $('#mySingleField'),
allowSpaces: true
});
}
})
答案 1 :(得分:1)
我的功能是在外部JS文件中。通过将代码移回到同一个文件中,我能够做一个简单的PHP包括得到我想要的东西。
$('#singleFieldTags').tagit({
availableTags: <? include("file_that_outputs_what_I_want.php") ?>,
singleField: true,
singleFieldNode: $('#mySingleField'),
allowSpaces: true
});