Флажок Cfinput установлен
Я не могу заставить это работать.
Моя форма имеет несколько входов, включая один флажок. В моем cfquery
Я просто хочу написать некоторый простой контент SQL, который проверяет, установлен ли флажок или нет. Но мой код просто полностью его игнорирует. Вот основы:
<cfform name="form" action="...." format="HTML">
....
<cfinput type="checkbox" name="search_NR" id="search_NR" checked="no" />
<cfinput type="submit" name="submit" value="Search" />
</cfform>
мой cfquery
довольно обширный, поэтому я просто поставлю здесь часть, относящуюся к флажку:
<cfif isDefined("form.search_NR")>
AND (tblMain.NR = true)
</cfif>
Я думал, что поле не будет определено, если оно не будет отмечено. Но независимо от того, отмечу ли я флажок в форме, запрос просто полностью игнорирует это. Я просто хочу добавить tblMain.NR = TRUE
к остальной части содержимого SQL, когда флажок установлен.
4 ответа
<cfif StructKeyExists(form, "search_NR")>
AND (tblMain.NR = true)
</cfif>
Это будет правильно отображать текущее состояние и позволит пользователю изменить, если использовать оба <cfForm>
а также <cfInput type="Checkbox">
:
Примечание: убедитесь, что <cfParam>
тег перед другими ссылками на элемент формы.
<cfparam name="form.search_NR" default="off">
<cfInput name="search_NR" type="Checkbox" checked="#form.search_NR is 'on'#">Some Text Here
Когда <cfform>
Значение search_NR либо "включено", либо "выключено" и может быть проверено в вашем запросе. Не забудьте добавить form.
на имя элемента:
<cfIf form.searchNR EQ 'on'>
...
<cfElse>
...
</cfIf>
Попробуйте использовать method="POST"
:
<cfform name="form" action="...." format="HTML" method="post">
В противном случае ваши переменные отправляются через область URL.
Я нашел решение самостоятельно...
В виде:
<input type="checkbox" name="search_NR" <cfif search_NR is "on"> checked</cfif> />
И на странице обработки...
Перед запросом:
<cfparam name="search_NR" default="off">
И в запросе...
<cfif #search_NR# EQ "on" >
AND (tblMain.NR = true)
</cfif>