0

ユーザーがプレイリストを送信できるフォームをコーディングしています。「アーティスト」フィールドと「曲」フィールドがあります。どちらも入力タイプ「テキスト」です。

両方のフィールドで 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',
)

そのため、ロード後にクエリ文字列を変更できないと思われます。変数をオートコンプリート クエリ文字列に動的に割り当てることを許可する実行可能な回避策はありますか? 基本的に、「アーティスト」フィールドの値に応じて、「曲」のオートコンプリートの提案が必要です。

4

1 に答える 1

2

関数をソースとして使用して、複数のダイナミクス パラメータをクエリに渡すだけです。

$('.song').autocomplete({
   var value = $(this).val(); 
    source:function( request, response ) {
          $.getJSON( "searchDev.php", {
            term: value ,
              data:{
                  type:"song",
                  myparam:$('#myparam').val()
              }
          }, response );
   }
})

この例では、現在の入力 .song の値が「high hope」で、#myparam フィールドの値が「pink」の場合、クエリは次のようになります。searchDev.php?term=high+hope&type=song&myparam=pink

Fiddle (実際のデータ ソースはありません。コンソールを参照してください): http://jsfiddle.net/RfuBP/3/ jquery オートコンプリートのソース オプションのドキュメント: http://api.jqueryui.com/autocomplete/#option-source

PS: あなたのコードでは、 window.sartist が要素ではなく値を返すことを確信していますか?

于 2013-05-02T22:54:21.140 に答える