Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 569
  • Last Modified:

<cvdiv bind="url........." and <cfinput type checkbox problem

Hello experts
I use this code:
<cfparam name="Url.S_Leasing" default="">
<cfdiv bind="url:../resultscheck.cfm?S_Leasing={S_Leasing}" ID="theDiv" style="height:20px; width:80px;"/>
<cfform>
<cfif  url.S_Leasing EQ 1 > 
    <cfset checkleasing = 'yes'>
    <cfelse>
     <cfset checkleasing = 'no'>
     </cfif>
    <cfinput name="S_Leasing" id="S_Leasing" type="checkbox"   checked="#checkleasing#" value="1" />
</cfform>
and using the cfdebug i see that when the checkbox is not checked value 1 is passed to the url:
Coldfusion Ajax Logger:
info:http: Replaced markup for element: theDiv

info:http: HTTP GET ../resultscheck.cfm?S_Leasing=1&_cf_containerId=theDiv&_cf_nodebug=true&_cf_nocache=true&_cf_clientid=8E407863AA052BD8A1E25ADF06B0023F&_cf_rc=0

info:http: Replacing markup for element: theDiv from URL ../resultscheck.cfm?S_Leasing=1 with params _cf_containerId=theDiv

info:LogReader: LogReader initialized

info:global: Logger initialized
Any help?
0
Panos
Asked:
Panos
  • 8
  • 4
1 Solution
 
azadisaryevCommented:
by default, allbindings are bound to the VALUE attribute of the element. since the value of VALUE attribute of your checkbox is 1, that's what the binding returns, disregarding if the checkbox is checked or not.

try this:
<cfdiv bind="url:../resultscheck.cfm?S_Leasing={S_Leasing.selected}" ID="theDiv" style="height:20px; width:80px;"/>

mind you, that will likely request the url with S_Leasing=true or S_Leasing=false url parameter - so make sure your resultscheck.cfm can react properly to true/false as url.S_Leasing value...

Azadi
0
 
PanosAuthor Commented:
Hi azadi
Here  is a part of my resultcheck.cfm page.
Can you help me?
<cfquery name="WADAdboartikel" datasource="#request.dsn#">
SELECT  *
FROM artikel
WHERE (0=0
<cfif isdefined("Url.S_Leasing") >
<cfif Url.S_Leasing NEQ "">     
  AND  Leasing = <cfqueryparam value="#URL.S_Leasing#"  cfsqltype="cf_sql_tinyint">
       </cfif>
       </cfif>
   )
</cfquery>
 
<cfoutput>#WADAdboartikel.RecordCount#</cfoutput>
0
 
PanosAuthor Commented:
Something else.
Is there another way to get the recortcount witout submutting the form?
0
New feature and membership benefit!

New feature! Upgrade and increase expert visibility of your issues with Priority Questions.

 
azadisaryevCommented:
oops... the checkbox's attribute to be used in the binding should be .checked, not .selected...

here's the full working code:

<!--- form page --->
<cfparam name="Url.S_Leasing" default="0"><!--- default it to 0 instead of empty string --->
<cfdiv bind="url:../resultscheck.cfm?S_Leasing={S_Leasing.checked}" ID="theDiv" style="height:20px; width:80px;"/>
<cfform>
    <cfinput name="S_Leasing" id="S_Leasing" type="checkbox" checked="#yesnoformat(URL.S_Leasing)#" value="1" />
</cfform>

<!--- resutscheck.cfm --->
<cfparam name="url.S_Leasing" default="0"><!--- cfparam this on this page, too! --->
<cfquery name="WADAdboartikel" datasource="#request.dsn#">
SELECT  COUNT(*) AS ttlcount
FROM artikel
WHERE Leasing = <cfqueryparam value="#val(URL.S_Leasing)#"  cfsqltype="cf_sql_tinyint">
</cfquery>
<cfoutput>#WADAdboartikel.ttlcount#</cfoutput>

Azadi
0
 
azadisaryevCommented:
as for getting the recordcount without submitting the form:
yes, there are multiple ways to do it, and i think you know all of them. at least you used most of these ways in the other things you are doing and posting questions about :)

js proxy to a cfc and binding directly to a cfc which returns the recordcount are 2 of these ways.

if i am misunderstanding what you mean by 'another way to get the recortcount witout submutting the form' - please clarify.

Azadi
0
 
PanosAuthor Commented:
Hi azadi.
I'm asking if there is another way because i don't know which of these function is  faster.
Now for the solution you posted:
As is see it is passing true and false in url.
In database the values are 0 and 1.
How can i handle this in the resultcheck page.
0
 
PanosAuthor Commented:
Is this OK?
<cfparam name="url.S_Leasing" default="0">
<cfif Url.S_Leasing  EQ true>
  <cfset S_Leasing = 1 >
  <cfelse>
  <cfset S_Leasing = 0 >
  </cfif>

......
<cfif S_Leasing EQ 1 >     
  AND  Leasing = <cfqueryparam value="1"  cfsqltype="cf_sql_tinyint">
       </cfif>

In resultcheckpage
0
 
PanosAuthor Commented:
Notice that if the value is 0 in database i want all the results (0 and 1)
0
 
azadisaryevCommented:
you mean it did not work as it is?
it worked fine with passing 'true' or 'false' value in the url... my db is mysql and the field type is tinyint as well...

oh... oooops.... i have no idea how that val() function got in there... the WHERE clause in your query should just be:

WHERE Leasing = <cfqueryparam value="#URL.S_Leasing#"  cfsqltype="cf_sql_tinyint">

without val() in the value...

sorry! :)

Azadi
0
 
PanosAuthor Commented:
Ok azadi it is working now
0
 
PanosAuthor Commented:
I will come back with a question about binding values from a checkboxgroup
0
 
PanosAuthor Commented:
Thank you very much for your help
regards
Panos
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 8
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now