Utilizzando CFQUERY e CFSELECT per tirare più valori in base alla selezione
-
15-10-2019 - |
Domanda
Ho un CFQUERY tirando tre colonne. Il seguente CFSELECT permette all'utente di effettuare una selezione da vari risultati in base al parametro 'display', e imposta il valore del parametro 'valore'.
desidero passare il terzo valore non utilizzata di tale record a una variabile da utilizzare in una query successiva. Non è possibile impostare il campo 'valore' alla colonna ho bisogno dal momento che il valore è necessaria in una query seguendo questo uno (query popolano basano sulla precedente discesa selezioni).
C'è un modo per fare questo? Per avere in qualche modo le CFSELECT afferrare 2 valori separati?
SubRegionName viene visualizzato.
Stato è il valore di passare.
SubRegionCD per questo selezione effettuata è necessario in seguito.
Esempio di codice qui sotto:
<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>
Ora ho bisogno di afferrare il SubRegionCD associato alla selezione gli utenti di Stato e di SubRegionName e assegnarlo a una variabile che può essere utilizzato nella query finale. Non posso usare Stato da solo per determinare la SubRegionCD, ma posso usare SubRegionName a fare una partita 1-1. Aiuto?
Soluzione
più semplice (in termini di più piccolo possibile, modifica del codice) sarebbe quella di fare:
<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>
E poi l'uso ListFirst(FORM.getSubTurf)
e ListLast(FORM.getSubTurf)
. Inoltre, non dimenticare di usare <cfqueryparam>
.
Altri suggerimenti
Per mantenere il risultato della query su più pagine si deve dividere il valore restituito alla pagina azione del modulo ... questa è stata la risposta suggerita ... <cfqueryparam value ="#ListFirst(form.***)#>