I am trying to debug a form that is basically a popup where the user enters a date and then two more dates are generated based off of date and the user can then edit those dates. When the user tries to save the second set of dates the "Element is undefined in a Java object of type class [Ljava.lang.String; referenced as" error is generated I am thinking this could just be a simple syntax error if that is the case here is the code for the page that has the error:

<cfif isdefined("form.txtFFFirstDate")>
<!--- used clicked save--->
	<cfset SESSION.Order.FrequentFlyer.Use = "Y">
	<cfset SESSION.Order.FrequentFlyer.UsedAtLeastOnce = "Y">
	<cfset SESSION.Order.FrequentFlyer.TargetDate = ArrayNew(1)>
	
	<cfset SESSION.Order.FrequentFlyer.TargetDate[1] = #DateFormat(form.txtFFFirstDate,"MM/DD/YYYY")#>
	<cfloop index="i" from="2" to="#SESSION.Order.FrequentFlyer.Count#">
		<cfset SESSION.Order.FrequentFlyer.TargetDate[i] = #DateFormat(form.txtFFDateSet[i],"MM/DD/YYYY")#>
	</cfloop>
</cfif>

my other idea is that the values are never being passed to this page.

<cfloop index="i" from="2" to="#SESSION.Order.FrequentFlyer.Count#">
	<tr>
		<td>
			Date <cfoutput>#i#</cfoutput>:
			<input type="text" name="txtFFDateSetMonth[<cfoutput>#i#</cfoutput>]" class="txtboxdt" maxlength="2" 
				value="<cfoutput>#Mid(DateFormat(dtTargetDate[i],"MM/DD/YYYY"),1,2)#</cfoutput>"> /
			<input type="text" name="txtFFDateSetDay[<cfoutput>#i#</cfoutput>]" class="txtboxdt" maxlength="2"
				value="<cfoutput>#Mid(DateFormat(dtTargetDate[i],"MM/DD/YYYY"),4,2)#</cfoutput>"> /
			<input type="text" name="txtFFDateSetYear[<cfoutput>#i#</cfoutput>]" class="txtboxdt" maxlength="2"
				value="<cfoutput>#Mid(DateFormat(dtTargetDate[i],"MM/DD/YYYY"),9,2)#</cfoutput>">
			<input type="hidden" name="txtFFDateSet[<cfoutput>#i#</cfoutput>]">
		</td>
	</tr>			
	</cfloop>
	<input type="hidden" name="txtFFFirstDate" value="<cfoutput>#form.txtFFDateSet#</cfoutput>">

anyway any help at all would be great

Recommended Answers

All 4 Replies

the referring page has a loop that generate the value for the page that is getting the error and I am thinking that the value is not being passed to that page.

</tr>
   <cfloop index="i" from="2" to="#SESSION.Order.FrequentFlyer.Count#">
   <tr>
      <td>
         Date <cfoutput>#i#</cfoutput>:
         <input type="text" name="txtFFDateSetMonth[<cfoutput>#i#</cfoutput>]" class="txtboxdt" maxlength="2"
            value="<cfoutput>#Mid(DateFormat(dtTargetDate[i],"MM/DD/YYYY"),1,2)#</cfoutput>"> /
         <input type="text" name="txtFFDateSetDay[<cfoutput>#i#</cfoutput>]" class="txtboxdt" maxlength="2"
            value="<cfoutput>#Mid(DateFormat(dtTargetDate[i],"MM/DD/YYYY"),4,2)#</cfoutput>"> /
         <input type="text" name="txtFFDateSetYear[<cfoutput>#i#</cfoutput>]" class="txtboxdt" maxlength="2"
            value="<cfoutput>#Mid(DateFormat(dtTargetDate[i],"MM/DD/YYYY"),9,2)#</cfoutput>">
         <input type="hidden" name="txtFFDateSet[<cfoutput>#i#</cfoutput>]">
      </td>
   </tr>         
   </cfloop>
   <input type="hidden" name="txtFFFirstDate" value="<cfoutput>#form.txtFFDateSet#</cfoutput>">

this hidden field

<input type="hidden" name="txtFFDateSet[<cfoutput>#i#</cfoutput>]">

contains the undefined value. does it need a value (name="" value="") on the referring page and if so what should it be?

Forgive me in advance if I am not being clear, I have looked at this issue all day with no revelations.

well no one responded to this post so I don't have to thank anyone but I did get it figured out and in case someone has the same trouble... I needed an eval statement in my loop so my cfset needed something like this:

<cfset tmpDate = EVALUATE("FORM.txtFFDateSet#i#")>

Well, I can now thank you for answering your own question.

I had the same problem and it occurred because I was passing variables from Argument as ARGUMENT.myclass.variable1 instead of using a getter method and turn it into ARGUMENT.myclass.getVariable1().

Once I made that change, it worked.

Sorry to wake the zombies (this thread is 5 years old...). But for newer CF versions use array notation, not evaluate()

<cfset tmpDate = FORM["txtFFDateSet#i#"] >

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.