0

3 つの列をプルする CFQUERY があります。次の CFSELECT を使用すると、ユーザーは「display」パラメーターに基づいてさまざまな結果から選択し、値を「value」パラメーターに設定できます。

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

これを行う方法はありますか?どうにかして CFSELECT に 2 つの個別の値を取得させるには?

SubRegionNameが表示されます。

Stateは渡す値です。

この選択の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>

ここで、State と SubRegionName のユーザー選択に関連付けられた SubRegionCD を取得し、最終的なクエリで使用できる変数に割り当てる必要があります。State だけを使用して SubRegionCD を特定することはできませんが、SubRegionName を使用して 1 対 1 で一致させることはできます。ヘルプ?

4

2 に答える 2

1

最も簡単な (可能な限りコードを変更しないという点で) は、次のようにすることです。

<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>

于 2011-01-20T22:58:49.280 に答える
0

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

于 2011-01-26T00:09:46.453 に答える