Solved

my two related select binding failed

Posted on 2009-05-13
9
393 Views
Last Modified: 2013-12-20
hi i have a coldfusion code in which the binding is failing and the value is not being retrived from database, i really do not know why?

first of all i will tell my table structutre

id, state, city in table zips

now i use the following code to bind the expression:

<tr><td><strong>State</strong></td>
      <td><select name="state" class="textfield_effect">
            <cfoutput query="getData">
              <option value="#sstate#">#sstate#</option>
        </cfoutput>
      </select>&nbsp;
      <cfselect name="city" bindOnLoad="yes" bind="cfc:cfc.statecity.CitySelect({State})"/>  
      </td>
      </tr>

now the cfcfunction is in below window:

i invoke the getdata as:

<cfinvoke component="#request.cfcPath#.tools" method="gData" newf="1" returnvariable="getData"/>

what in getdata is as:

 <cffunction access="public" name="gData" returntype="query">
          <cfargument name="newf" default="" required="no">
          <cfset var myset = "">
        <cfquery name="myset" datasource="#request.dsn#">
        <cfif isdefined('arguments.newf') and arguments.newf eq 1>
             SELECT DISTINCT(state) as sstate
        from zips
        GROUP by state
        <cfelse>
        SELECT * from zips
        </cfif>
        </cfquery>
        <cfreturn myset>
    </cffunction>
   

<cfcomponent>

<cfproperty name="name" type="string">

<cffunction name="CitySelect" access="remote" returntype="array">

  <cfargument name="State" type="string" required="true">

  <cfquery name="myset" datasource="#request.dsn#" username="#request.user#" password="#request.pass#">

	SELECT city,state 

    FROM zips 

    WHERE State = <cfqueryparam cfsqltype="cf_sql_varchar" value="#state#">

  </cfquery>

  <cfset list = arraynew(2)>

  <!--- Convert results to array --->

  <cfloop index="i" from="1" to="#myset.RecordCount#">

    <cfset list[i][1]= myquery.state[i]>

    <cfset list[i][2]= myquery.city[i]>

  </cfloop>

  <cfreturn list>

</cffunction>

</cfcomponent>

Open in new window

0
Comment
  • 6
  • 3
9 Comments
 
LVL 27

Expert Comment

by:azadisaryev
ID: 24381771
you are terminating your <cfselect> tag by using an empty tag closing tag ( /> ) in it - that prevents any <option> tags to be added to this <cfselect> by the bnding.

you need to properly close your <cfselect> tag by using a closing tag instead of terminating it. change your <cfselect> to this:

<cfselect name="city" bindOnLoad="yes" bind="cfc:cfc.statecity.CitySelect({State})"></cfselect>

Azadi
0
 
LVL 15

Author Comment

by:Gurpreet Singh Randhawa
ID: 24381783
changing that as you suggested still not solved my issue. i get this error:


<input id="gwProxy" type="hidden"><!--Session data--><input onclick="jsCall();" id="jsProxy" type="hidden">
error:bind: Element not found: State
 

error:bind: Bind failed, element not found: State

Open in new window

0
 
LVL 27

Expert Comment

by:azadisaryev
ID: 24382320
javascript IS case-sensitive. if your <select> has name="state" (lowercase first letter), then you need to bind to {state}, NOT {State}.

plus, you should probably add ID="sate" attribute to your <select name="state">, because, iirc, cf's js that works behind the binding uses getElementById() js function...

Azadi
0
 
LVL 15

Author Comment

by:Gurpreet Singh Randhawa
ID: 24382513
i changed, i added the element ID in state select

i get this error:
<input id="gwProxy" type="hidden"><!--Session data--><input onclick="jsCall();" id="jsProxy" type="hidden">
error:http: Error invoking CFC /ibestcity/corecontrol/cfc/statecity.cfc : Element STATE is undefined in a Java object of type class [Ljava.lang.String;.

Open in new window

0
PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

 
LVL 15

Author Comment

by:Gurpreet Singh Randhawa
ID: 24383511
Dude, I changed a bit of code in the CFC to make it a simple query. the query i changed is below:

it showed me this error:


<input id="gwProxy" type="hidden"><!--Session data--><input onclick="jsCall();" id="jsProxy" type="hidden">
error:bind: Bind failed for select box city, value and/or display attributes must be specified on the cfselect tag when binding to a query
 

Now the cfc function i changed.
 

<cfcomponent>

<cfproperty name="name" type="string">

<cffunction name="CitySelect" access="remote" returntype="query">

  <cfargument name="state" type="string" required="true">

  <cfquery name="myset" datasource="#request.dsn#" username="#request.user#" password="#request.pass#">

	SELECT *

    FROM zips 

    WHERE state = <cfqueryparam cfsqltype="cf_sql_varchar" value="#state#">

  </cfquery>

  <cfreturn myset>

</cffunction>

</cfcomponent>
 
 

iopened firebug to see what is happening, i got the following stuff.:
 

 {"COLUMNS":["FIPS","ZIPCODE","STATE","PLACE"],"DATA":[[1,143001.0,"Punjab","Amritsar"],[2,144001.0

,"Punjab","Jalandhar"]]}

  

can u guide me what is happening and what i do now

Open in new window

0
 
LVL 15

Author Comment

by:Gurpreet Singh Randhawa
ID: 24383514
ignore this : = <input id="gwProxy" type="hidden"><!--Session data--><input onclick="jsCall();" id="jsProxy" type="hidden">

0
 
LVL 15

Author Comment

by:Gurpreet Singh Randhawa
ID: 24385759
can anybody tell me how i do this, my project is stucked due to this, please experts<input id="gwProxy" type="hidden"><!--Session data--><input onclick="jsCall();" id="jsProxy" type="hidden">
0
 
LVL 27

Accepted Solution

by:
azadisaryev earned 500 total points
ID: 24385812
do as the error says: add DISPLAY and VALUE attributes to your <cfselect> tag!

<cfselect name="city" bindOnLoad="yes" bind="cfc:cfc.statecity.CitySelect({state})" DISPLAY="place" VALUE="place"></cfselect>

Azadi
0
 
LVL 15

Author Closing Comment

by:Gurpreet Singh Randhawa
ID: 31581100
Thanks Azadi
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Sometimes databases have MILLIONS of records and we need a way to quickly query that table to return the results me need. Sure you could use CFQUERY but it takes too long when there are millions of records. That is why SOLR was invented. Please …
When setting up new project requests for our site, one of the most powerful tools our team has available to use is Axure (http://www.axure.com/). It’s a tool for creating software and web prototypes that can function and interact as if it were the a…
The purpose of this video is to demonstrate how to Import and export files in WordPress. This will be demonstrated using a Windows 8 PC. Go to your WordPress login page. This will look like the following: mywebsite.com/wp-login.php : Click on Too…
The purpose of this video is to demonstrate how to integrate Mailchimp with WordPress, by placing a Mailchimp signup form on a WordPress Page or Post. This will be demonstrated using a Windows 8 PC. Mailchimp will be used. Log into your Mailchi…

920 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now