Solved

my two related select binding failed

Posted on 2009-05-13
9
391 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
Question by:myselfrandhawa
  • 6
  • 3
9 Comments
 
LVL 27

Expert Comment

by:azadisaryev
Comment Utility
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:myselfrandhawa
Comment Utility
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
Comment Utility
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:myselfrandhawa
Comment Utility
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
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 
LVL 15

Author Comment

by:myselfrandhawa
Comment Utility
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:myselfrandhawa
Comment Utility
ignore this : = <input id="gwProxy" type="hidden"><!--Session data--><input onclick="jsCall();" id="jsProxy" type="hidden">

0
 
LVL 15

Author Comment

by:myselfrandhawa
Comment Utility
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
Comment Utility
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:myselfrandhawa
Comment Utility
Thanks Azadi
0

Featured Post

What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

Join & Write a Comment

Hi. There are several upload tutorials using jquery and coldfusion. I found a very interesting one here Upload Your Files using Jquery & ColdFusion and Preview them (http://www.randhawaworld.com/) . I did keep the main js functions but made sever…
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 prevent comment spam on a WordPress Website. This will be demonstrated using a Windows 8 PC. Plugin Akismet will be used. Go to your WordPress login page. This will look like the following: myw…
The purpose of this video is to demonstrate how to set up the permalinks on a WordPress Website. 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 : Go t…

772 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

11 Experts available now in Live!

Get 1:1 Help Now