Поиск подходящих предметов в параллельных списках - PullRequest
0 голосов
/ 20 марта 2012
<cfset stateList = "Alabama,Alaska,Arizona, ..., Wyoming">
<cfset stateAbbrList = "AL,AK,AR, ..., WY">

<cfset stateAbbr = #ListGetAt("stateAbbrList",ListFind("stateList",form.state))#>

Когда form.state - Алабама, я ожидаю, что stateAbbrList будет AL. Но вместо этого я получаю сообщение о том, что ListGetAt возвращает ноль.

Что я делаю не так?

1 Ответ

5 голосов
/ 20 марта 2012

Вам нужно взять кавычки вокруг имен переменных;если вы используете кавычки, то вам нужно заключить в # знаки.

<cfset stateAbbr = ListGetAt(stateAbbrList, ListFind(stateList, form.state)) />

ИЛИ

<cfset stateAbbr = ListGetAt("#stateAbbrList#", ListFind("#stateList#", form.state)) />

Я добавлю, что я не думаю, что это хороший способ сделать это;гораздо лучше было бы использовать struct или создать запрос.

<cfset stateStruct = { "AL" = "Alamaba", ..., "WY" = "Wyoming" } />
...