En utilisant CFQUERY et CFSELECT pour tirer plusieurs valeurs basées sur la sélection

StackOverflow https://stackoverflow.com/questions/4753545

  •  15-10-2019
  •  | 
  •  

Question

J'ai un CFQUERY tirant trois colonnes. Le CFSELECT suivant permet à l'utilisateur d'effectuer une sélection à partir de différents résultats en fonction du paramètre « display », et définit la valeur du paramètre « valeur ».

Je voudrais passer la troisième valeur inutilisée de ce disque à une variable à utiliser dans une requête ultérieure. Je ne peux pas définir le champ « valeur » à la colonne I besoin puisque cette valeur est nécessaire dans une requête suivante celui-ci (requêtes basées sur POPULATE baisse précédente baisse des sélections).

Est-il possible de le faire? Pour avoir en quelque sorte les CFSELECT saisir 2 valeurs distinctes?

SubRegionName est affiché.

État est la valeur à transmettre.

SubRegionCD cette sélection effectuée est nécessaire plus tard.

Exemple de code ci-dessous:

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

Maintenant, je dois saisir l'SubRegionCD associée à la sélection des utilisateurs d'Etat et SubRegionName et l'assigner à une variable qui peut être utilisé dans la requête finale. Je ne peux pas utiliser seul Etat pour déterminer le SubRegionCD, mais je peux utiliser SubRegionName pour faire un match 1-1. Aide?

Était-ce utile?

La solution

Simplest (en termes de Littlest-possible changement de code) serait de le faire:

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

puis utilisez ListFirst(FORM.getSubTurf) et ListLast(FORM.getSubTurf). En outre, ne pas oublier d'utiliser <cfqueryparam>.

Autres conseils

Pour maintenir le résultat de la requête dans les pages que vous devez diviser la valeur retournée à la page d'action de la forme ... ceci est la réponse a été suggéré ... <cfqueryparam value ="#ListFirst(form.***)#>

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top