Поиск подходящих предметов в параллельных списках
<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" } />