Флажок 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>
Другие вопросы по тегам