Hold the horses!

I changed the join from:

specialIDList.join();

to:

var specialIDList = specialIDList.join();

and it worked!

I think the var, specialIDList, was not available to the ajax function
since it was being recreated
in the .each loop.

So, now do I have to loop over the multiple variables in specialIDList on
the server side with CF
in order to break the string into individual arguments?




On Thu, Jan 16, 2014 at 2:07 PM, Rick Faircloth <r...@whitestonemedia.com>wrote:

> Hi, Steve...
>
> I just gave that a try, but still get an error in Firebug:
> "500 Element SPECIALIDLIST is undefined in ARGUMENTS"
>
> Also, in the console, I still get what appears to be the same when I use
> console.log(specialIDLlist):
> [ "27", "28", "26" ].
>
> Perhaps something is missing on the cfc method side? Here's that code:
>
> <cffunction     name               =     "mProcessEmailNewsletterForm"
>   displayName    =  "mProcessEmailNewsletterForm"
>   hint                  =  "Processes Email Newsletter Form"
>   output              =  "true"
>   access             =  "remote"
>   returnType        = "struct" >
>
>   <cfargument name = "emailNewsletterGreeting" type = "string" required =
> "no" />
>   <cfargument name = "specialIDList"                  type = "string" required
> = "no" />
>
>   <cfset emailNewsletterStruct = structNew() />
>
>   <cfset emailNewsletterStruct.EMAILNEWSLETTERGREETING = 
> '#arguments.emailNewsletterGreeting#'
> />
>   <cfset emailNewsletterStruct.SPECIALIDLIST = '#arguments.specialIDList#'
> />
>
>   <cfreturn emailNewsletterStruct />
>
> </cffunction>
>
>
> ???
>
>
>
>
> On Thu, Jan 16, 2014 at 12:50 PM, Steve Milburn <scmilb...@gmail.com>wrote:
>
>>
>> Inside your .each loop you want to push specialID to your array like so:
>> specialIDList.push (specialID). Afterwards when you are preparing your
>> values object to be sent to the server you do specialIDList.join to put
>> them into a string.
>> On Jan 16, 2014 12:32 PM, "Rick Faircloth" <r...@whitestonemedia.com>
>> wrote:
>>
>> >
>> > Here's the client-side code:
>> >
>> > $(document).ready(function() {
>> >
>> >   $('#newsletter_preview_button').click(function() {
>> >
>> >   var emailNewsletterGreeting = $('#email_newsletter_greeting').val();
>> >
>> >   var specialIDList = [];
>> >
>> >   $('.special_title_checkbox:checked').each(function() {
>> >
>> >   var specialID = $(this).attr('id').split('_').pop();
>> >   specialIDList = specialID.join(', ');
>> >
>> >   });
>> >
>> >   console.log(specialIDList);
>> >
>> >   values     =  {     emailNewsletterGreeting:
>> emailNewsletterGreeting,
>> >   specialIDList:                      specialIDList
>> }
>> >
>> >
>> >   $.ajax            ({  cache:                                false,
>> >   type:                                  'post',
>> >
>> >
>> >
>> 'email-newsletter.cfc?method=mProcessEmailNewsletterForm&returnFormat=json',
>> >   data:                                  values,
>> >   success:                            function(response) {
>> >
>> >   alert('Success!');
>> >
>> >   }
>> >           });
>> >
>> >   });
>> >
>> > });
>> >
>> > On Thu, Jan 16, 2014 at 11:02 AM, Raymond Camden <
>> raymondcam...@gmail.com
>> > >wrote:
>> >
>> > >
>> > > On Thu, Jan 16, 2014 at 9:54 AM, Rick Faircloth <
>> > r...@whitestonemedia.com
>> > > >wrote:
>> > >
>> > > >
>> > > > Hmmm...
>> > > >
>> > > > I tried using the specialIDList.push(specialID) approach, and I get
>> the
>> > > > correct
>> > > > output in console.log,  [ "27", "28", "26" ], but I also get the
>> error
>> > in
>> > > > Firebug,
>> > > > "500 Element SPECIALIDLIST is undefined in ARGUMENTS.
>> > > >
>> > >
>> > >
>> > >
>> > > >
>> > > > I also tried using specialIDList = specialID.join(', ') and I still
>> get
>> > > the
>> > > > same
>> > > > output in console.log, [ "27", "28", "26" ], but I also get the same
>> > > error
>> > > > in Firebug,
>> > > > "500 Element SPECIALIDLIST is undefined in ARGUMENTS.
>> > > >
>> > >
>> > > Ok, so you passed specialidlist, right? Can you show us your latest
>> code?
>> > >
>> > >
>> > > >
>> > > > So, the cfc method doesn't understand speciaIDList when it's sent in
>> > the
>> > > > form
>> > > > above, even when I specify the argument as "array" type.
>> > > >
>> > >
>> > > Remember, we are sending the data over the wire as a string. So your
>> > > argument should be string.
>> > >
>> > > But for now, let's see your client side code again please.
>> > >
>> > >
>> > >
>> >
>> >
>>
>> 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Order the Adobe Coldfusion Anthology now!
http://www.amazon.com/Adobe-Coldfusion-Anthology/dp/1430272155/?tag=houseoffusion
Archive: 
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:357449
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm

Reply via email to