You could just run your form through this tiny plugin, prior to 
submitting your ajax request

https://github.com/cutterbl/CFQueryToForm/blob/master/resources/scripts/jquery/jquery.serializejson-0.2.js

Steve 'Cutter' Blades
Adobe Community Professional
Adobe Certified Expert
Advanced Macromedia ColdFusion MX 7 Developer
____________
http://cutterscrossing.com


Co-Author "Learning Ext JS 3.2" Packt Publishing 2010
https://www.packtpub.com/learning-ext-js-3-2-for-building-dynamic-desktop-style-user-interfaces/book

"The best way to predict the future is to help create it"

On 1/16/2014 1:22 PM, Steve Milburn wrote:
> You cant break the string into individual arguments. It will be one
> argument that contains a string with comma separated values, which can be
> easily handled with CFs list functions. I'm not sure what you want to do
> with them in your CFC, but you can loop through the values like so:
>
> <cfloop list="#arguments.specialIDList#" index="local.loopIndex">
>    ... here you have access to each value individually to work with....
> </cfloop>
>
>
> On Thu, Jan 16, 2014 at 2:11 PM, Rick Faircloth 
> <[email protected]>wrote:
>
>> 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 <[email protected]
>>> 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 <[email protected]
>>> 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" <[email protected]>
>>>> 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 <
>>>> [email protected]
>>>>>> wrote:
>>>>>> On Thu, Jan 16, 2014 at 9:54 AM, Rick Faircloth <
>>>>> [email protected]
>>>>>>> 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:357452
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm

Reply via email to