cfqueryとcfselectを使用して、選択に基づいて複数の値をプルする
-
15-10-2019 - |
質問
私は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.***)#>