Frage

Ich habe einen CFQuery, der drei Säulen zieht. Mit dem folgenden CFSelect kann der Benutzer eine Auswahl aus verschiedenen Ergebnissen basierend auf dem Parameter "Anzeige" treffen und den Wert auf den Parameter "Wert" festlegt.

Ich möchte den dritten nicht verwendeten Wert dieses Datensatzes an eine Variable übergeben, die in einer späteren Abfrage verwendet werden soll. Ich kann das Feld "Wert" nicht auf die Spalte einstellen, die ich benötige, da dieser Wert in einer folgenden Abfrage benötigt wird (Abfragen füllen basierend auf früheren Dropdown -Auswahlen).

Gibt es eine Möglichkeit, dies zu tun? Um den CfSelect 2 separate Werte zu greifen?

Subregionname wird angezeigt.

Bundesland ist der Wert zu bestehen.

Subregioncd zum Dies Die Auswahl wird später benötigt.

Codebeispiel unten:

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

Jetzt muss ich die Subregioncd greifen, die der Benutzerauswahl von Zustand und Subregionnamen ausgewählt und einer Variablen zuweisen, die in der endgültigen Abfrage verwendet werden kann. Ich kann den Zustand nicht allein verwenden, um die Subregioncd zu bestimmen, aber ich kann einen Subregionnamen verwenden, um ein 1: 1-Übereinstimmung zu erzielen. Hilfe?

War es hilfreich?

Lösung

Einfachste (in Bezug auf die Änderung des kleinsten Code-Codes) wäre vorhanden:

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

Und dann verwenden ListFirst(FORM.getSubTurf) und ListLast(FORM.getSubTurf). Vergessen Sie auch nicht zu verwenden <cfqueryparam>.

Andere Tipps

Um das Abfrageergebnis über Seiten aufrechtzuerhalten, müssen Sie den auf die Aktionsseite des Formulars zurückgegebenen Wert aufteilen ... Dies war die vorgeschlagene Antwort ... <cfqueryparam value ="#ListFirst(form.***)#>

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top