1

JqueryTagitを使用しています。

オートコンプリートに入力するアイテムの配列を受け入れるオプション「AvailableTags」を提供します。

受信した配列をTagit呼び出しに渡すと、必要な適切なデータ(塗りつぶされた配列)が生成されているように見えても、ajaxget呼び出しが機能していないようです。

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」に渡そうとしているだけですが、持ち越したくないようです。

助けてくれてありがとう。

4

2 に答える 2

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
        });
    }
})
于 2012-09-22T23:39:03.173 に答える
1

私の関数は外部JSファイルにありました。コードを同じファイルに戻すことで、単純な php インクルードを実行して、必要なものを取得することができました。

$('#singleFieldTags').tagit({ 
availableTags: <? include("file_that_outputs_what_I_want.php") ?>,  
singleField: true, 
singleFieldNode: $('#mySingleField'), 
allowSpaces: true 
}); 
于 2012-09-23T00:14:55.540 に答える