Использование CFQUERY и CFSELECT для получения нескольких значений на основе выбора - PullRequest
0 голосов
/ 21 января 2011

У меня есть CFQUERY, тянущий три колонки. Следующий CFSELECT позволяет пользователю делать выбор из различных результатов на основе параметра «display» и устанавливает значение в параметр «value».

Я хотел бы передать третье неиспользуемое значение этой записи в переменную, которая будет использоваться в более позднем запросе. Я не могу установить в поле «значение» столбец, который мне нужен, поскольку это значение необходимо в запросе, следующем за этим (запросы заполняются на основе предыдущих выпадающих списков).

Есть ли способ сделать это? Чтобы как-то CFSELECT захватить 2 отдельных значения?

Отображается имя_подрегиона .

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>

Теперь мне нужно захватить SubRegionCD, связанный с выбором пользователем State и SubRegionName, и назначить его переменной, которая может использоваться в конечном запросе. Я не могу использовать только State для определения SubRegionCD, но я МОГУ использовать SubRegionName для сопоставления 1-1. Помощь

Ответы [ 2 ]

1 голос
/ 21 января 2011

Простейшим (с точки зрения минимально возможного изменения кода) было бы сделать:

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

0 голосов
/ 26 января 2011

Чтобы сохранить результат запроса по страницам, нужно разделить значение, возвращаемое на страницу действия формы ... это был предложенный ответ ... <cfqueryparam value ="#ListFirst(form.***)#>

...