Поиск подходящих предметов в параллельных списках

<cfset stateList = "Alabama,Alaska,Arizona, ..., Wyoming">
<cfset stateAbbrList = "AL,AK,AR, ..., WY">

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

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

Что я делаю неправильно?

1 ответ

Решение

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

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

ИЛИ ЖЕ

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

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

<cfset stateStruct = { "AL" = "Alamaba", ..., "WY" = "Wyoming" } />
Другие вопросы по тегам