0

クエリ結果を jquery オートコンプリートのソース属性に渡そうとしたときに問題が発生しました...

    <cfloop query="MyQuery">
      <cfset head=#ValueList(MyQuery.pname,",")#>
      <cfset head1=#listtoarray(head)#>
    </cfloop>

ここで、head1 配列を jquery コードに送信したい場合、Jquery オートコンプリート コードは次のようになります。

    <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.0/themes/base/jquery-ui.css" />
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.10.0/jquery-ui.js"></script>
    <link rel="stylesheet" href="/resources/demos/style.css" />
    <script>

    $(function() {
    var availableTags = head1;
    $("#k").autocomplete({
    source:availableTags
      });

  });


 </script>
 </cfif>

head1 を availableTags に渡す方法

4

2 に答える 2

3

まず、cfloopは何も実行せずvaluelistlisttoarray同じ結果を何度も繰り返しています。それをクエリループに入れる意味はありません。valueListの詳細を参照してください

CFで次のようなことを簡単に行うことができます。

<cfset head=#ValueList(MyQuery.pname,",")#>
<cfset head1=#listtoarray(head)#>

ColdFusionには、toScriptと呼ばれる優れた関数があります。

ColdFusion変数の値をJavaScriptまたはActionScript変数に割り当てるJavaScriptまたはActionScript式を作成します。この関数は、ColdFusionの文字列、数値、配列、構造、およびクエリを、同等の変数と値を定義するJavaScriptまたはActionScript構文に変換できます。

CFアレイを使用してJSアレイを作成するには、次のようにします。

$(function() {
    <cfoutput>var #ToScript(head1, "availableTags")#;</cfoutput>
    $("#k").autocomplete({
        source:availableTags
    });
});

toScriptの出力は次のようになります

var availableTags =  new Array();
availableTags[0] = "something";
availableTags[1] = "something else";
availableTags[2] = "another something";
availableTags[3] = "even more something";
于 2013-02-07T11:38:16.157 に答える
0

問題を解決するためにserializeJsonを使用しました..そして、あなたは私に別の良い方法を教えてくれました... (toScript)...ありがとう... :)

$(function() {
     <cfoutput>var states = <cfoutput>#serializeJson(head1)#</cfoutput>                                                                                             $("#k").autocomplete({
     source:availableTags
  });
  });
于 2013-02-12T09:54:31.103 に答える