ユーザーがプレイリストを送信できるフォームをコーディングしています。「アーティスト」フィールドと「曲」フィールドがあります。どちらも入力タイプ「テキスト」です。
両方のフィールドで jquery のオートコンプリート機能を使用しようとしています。アーティストのオートコンプリート結果はユーザーのキーストロークの関数であり、曲のオートコンプリートの結果はユーザーのキーストロークとアーティスト入力フィールドの値の関数です。
オートコンプリートは、アーティスト入力フィールドの下に提案のリストを入力するように機能しているようです。search.php
クエリ文字列を読み取るスクリプトです。
$(".artist").autocomplete("searchDev.php?type=artist&"+mydate.getTime(), {
width: 180,
selectFirst: false
});
では、キーストロークsearch.php
後の searchDev.php の $_GET の var_export が生成されますa
array (
'type' => 'artist',
1367531572213 => '',
'q' => 'a',
'limit' => '10',
'timestamp' => '1367531576911',
)
これで十分です。しかし、オートコンプリート(歌の入力欄用)でクエリ文字列(ここではwindow.sartist)に変数を与えようとすると、
$(".song").autocomplete("search.php?type=song&sartist="+window.sartist+"&"+mydate.getTime(), {
width: 180,
selectFirst: false
});
sartist
正しく定義されていません。つまりvar_export($_GET)
、search.php で生成されます
array (
'type' => 'song',
'sartist' => '[object HTMLInputElement]',
1367525807081 => '',
'q' => 'a',
'limit' => '10',
'timestamp' => '1367526169637',
)
ウィンドウにアタッチされていないグローバル変数がwindow.sartist
クエリ文字列のvar_export($_GET)
代わりに使用されている場合、
array (
'type' => 'song',
'sartist' => '',
1367528252501 => '',
'q' => 'a',
'limit' => '10',
'timestamp' => '1367528260585',
)
そのため、ロード後にクエリ文字列を変更できないと思われます。変数をオートコンプリート クエリ文字列に動的に割り当てることを許可する実行可能な回避策はありますか? 基本的に、「アーティスト」フィールドの値に応じて、「曲」のオートコンプリートの提案が必要です。