2016-05-20 19 views
4

私は、選択とテキストボックスを持つ単純なフォームを持っています。 change関数を使用して、私はクエリを実行し、結果を返すcfcを呼び出します:今はstructとして。これが奇妙に聞こえるかもしれませんが、私はその構造体からテキストボックスにデータを取得するのに助けが必要です。ColdFusion StructとAjax

以下はcfmとcfcの内容です。どんな助けでも本当に感謝しています。

test.cfm(これは単純な形態である)

<cfquery name="getHRSpecialists" datasource="AOO"> 
    SELECT * FROM [52PrepHRSpecialists]  
</cfquery> 

<script src="jquery-2.2.3.min.js"></script> 
<script> 
$(document).ready(function() { 
    $textBox6 = $("#textBox6"); 
    $("#textBox5").change(function(e) { 
     var selected = $(this).val(); 
     console.log('change:', selected); 
     if(selected === '') return; 
     $.get("getHRPhone.cfc?method=getPhone", {textBox5:selected}, function(res) { 
      $textBox6.html(res); 
     }); 
    }); 
}); 
</script> 

<cfform> 
    <cfselect name="textBox5" id="textBox5" title="Select You Human Resource Specialist's Name" class="headerFields"> 
     <option value="">Choose a Specialist</option> 
     <cfoutput query="getHRSpecialists"> 
      <option value="#hrSpecName#">#hrSpecName#</option> 
     </cfoutput>  
    </cfselect> 

    HRS's Phone #: 
    <cfinput id="textBox6" 
      name="textBox6" 
      type="text" 
      title="Your Human Resource Specialist's Phone ##" 
      readonly> 

</cfform> 

getHRPhone.cfc(これはAJAX呼び出しから参照されますCFCある)

<cfcomponent output="false"> 
    <cffunction name="getPhone" access="remote" output="true" returntype="struct" returnformat="json"> 
     <cfargument name="textBox5" type="string" required="true" > 

     <cfquery name="getPhone" datasource="AOO"> 
      SELECT hrSpecPhone 
      FROM [52PrepHRSpecialists] 
      WHERE hrSpecName = '#arguments.textBox5#' 
     </cfquery> 

     <cfset local.obj = {phone = getPhone.hrSpecPhone} >   

     <cfreturn local.obj> 
    </cffunction> 
</cfcomponent> 

データ(これは私が戻ったデータです)

{"PHONE":"123-456-7890"} 

私が必要とするのは、選択された人に基づいて入力ボックスに実際の電話番号が必要です。

+2

res.PHONEが答えかもしれません。正しいケーシングのためのケア。 Coldfusionが構造内のデータをシリアル化すると、大文字/小文字の区別が変更される可能性があります。ブラウザのF12ツールを使用します(FirebugはおそらくMozillaブラウザでも使用できます)。ネットワークタブがありますが、そこでシリアル化された応答が表示されます。 –

+0

私は適切な応答を返します。そして、私はページにロードすることができます...テキストフィールドにはありません。それは私が困惑している場所です。 –

+1

(編集)テキストボックス 'val()'を設定するためのBernhardの提案を試しましたか?この質問では何もしませんが、A)上記のコードでCFフォームコントロールの必要はなく、問題を引き起こす可能性もあります。代わりに、普通のhtmlコントロール、すなわち '

'、 '