質問

私は3つの列を引っ張るcfqueryを持っています。次のCFSelectを使用すると、ユーザーは「表示」パラメーターに基づいてさまざまな結果から選択を行い、値を「値」パラメーターに設定できます。

そのレコードの3番目の未使用値を変数に渡し、後のクエリで使用したいと思います。この値(以前のドロップダウン選択に基づいて入力するクエリ)でその値が必要であるため、必要な列に「値」フィールドを設定することはできません。

これを行う方法はありますか?どういうわけかCFSelectに2つの個別の値をGRABに持っていますか?

subregionname 表示されています。

合格する値です。

subregioncd にとって これ 後で選択が必要です。

以下のコード例:

    <cfquery name="qrySubTurf"
 DATASOURCESTUFF>
 SELECT SubRegionName, SubRegionCd, State
 From dbo.tblRegions 
 where Region='#form.getRegion#'  <!---Previous CFSELCT value--->
 order by SubRegionName
     </cfquery>

     <cfselect name="getSubTurf"
 style="width:220px"
 size=1
 multiple="no"
 query="qrySubTurf"
 value="state"                   <!---Value passed to the next CFQUERY--->
 display="SubRegionName"         <!---Value displayed to user--->
 queryPosition="below"
 onChange="AddForm.submit();">
        <option value=""></option>
     </cfselect>

ここで、ユーザーの選択に関連するSubregionCDをステートとサブリージョン名の選択につかみ、最終クエリで使用できる変数に割り当てる必要があります。 Stateのみを使用してSubregionCDを決定することはできませんが、SubregionNameを使用して1-1の試合を行うことができます。ヘルプ?

役に立ちましたか?

解決

最も単純な(Littlest Possible Code Changeの点で)することは、次のことです。

<cfquery name="qrySubTurf"
 DATASOURCESTUFF>
 SELECT SubRegionName, SubRegionCd + ',' + State AS Key
 From dbo.tblRegions 
 where Region=<cfqueryparam value="#form.getRegion#" cfsqltype="CF_SQL_VARCHAR">
 order by SubRegionName
</cfquery>

<cfselect name="getSubTurf"
 style="width:220px"
 size=1
 multiple="no"
 query="qrySubTurf"
 value="Key"
 display="SubRegionName"
 queryPosition="below"
 onChange="AddForm.submit();">
  <option value=""></option>
</cfselect>

そして、使用します ListFirst(FORM.getSubTurf)ListLast(FORM.getSubTurf). 。また、使用することを忘れないでください <cfqueryparam>.

他のヒント

ページ全体でクエリの結果を維持するには、フォームのアクションページに返される値を分割する必要があります...これは提案された答えでした... <cfqueryparam value ="#ListFirst(form.***)#>

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top