3

以前にも同様の質問があり、回答があったことは知っていますが、コードに特定の問題があります。ドロップダウンが変更されたら、そのサイトからのヤードでid="SITE"ドロップダウンを埋めたいです。id="YARD"これが私のコンポーネント CFC コードです (AjaxFunctions.cfc というページにあります):

<cfcomponent output="false">
<!---  Get YARDS dataset based on SITE  --->
    <cffunction name="getYards" access="remote" returntype="query" />
    <cfargument name="Site" type="string" required="true" /> 
    <cfquery name="rs_Yards" datasource="abc" username="notReal1" password="notReal2" >
        <!--- SQL code here --->
    </cfquery>
    <cfreturn rs_Yards />
    </cffunction>
 <cfcomponent>

そして、呼び出しページの head セクションにある受信コードは次のとおりです。

<script>
    $(document).ready(function() {
        $("#SITE").change(function() {
            alert( "SITE has changed." );// testing to see if jQuery works
            // empty YARD dropdown
            $("#YARD").empty();
            // perform ajax
            $.ajax({
                type: "GET",
                url: "AjaxFunctions.cfc",
                data: {
                    method: "getYards",
                    Site: $("#SITE").val()
                },
                datatype: "json",
                success: function(data) {
                    alert("We received the data."+data);
                    $.each(data, function () {
                        $("#YARD").append($("<option></option>").val(this['ITEMID']).html(this['ITEMDESC']));
                    }                   
                }
            });
        });
    });
</script>

コードをそのまま試してみると、まったく何も起こりません。これらの行だけをコメントアウトすると

$.each(data, function () {
    $("#YARD").append($("<option></option>").val(this['ITEMID']).html(this['ITEMDESC']));
} 

次に、「サイトが変更されました」という通知が表示され、YARD ドロップダウンが空になりますが、「データを受信しました...」というアラートは、エラー ページの HTML コードのように見えます。後で YARD ドロップダウンを更新することを心配できると思いますが、今はクエリからデータを受け取ることだけが心配です。

4

2 に答える 2