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?

È stato utile?

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.***)#>

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top