Okay, I gotcha. I thought it would be a reference (I learn something new everyday! I love that!).

You're right though, if you're not going to be doing anything special with the copy then it's not really necessary. I typically var just that one structure and then *everything* becomes part of it. Any new variable I want becomes my.variableName. All my queries are my.queryname. Any further structures or arrays are always my.struct or my.array, etc.. It keeps me from forgetting to var anything in my CFCs. So it's just a habit for me to make the deep copy. I can see here that in this simple example the deep copy wasn't necessary. :o)

Cheers!
Chris



Daemach wrote:
It's a reference, but in this case you're just trying to avoid having to type
"arguments" so it works - I do the same thing. The only time you really need
to do a deep copy is if you are planning to manipulate the second structure
and need to keep the first intact for some reason.



Christopher Jordan wrote:
Hmm... I hadn't thought of that. So you're saying that you would eliminate the looping over the argument structure and just set my = arguments;? Would that make a *copy* of the arguments structure in the 'my' variable, or would 'my' be a *reference* to the arguments structure?

Chris

Daemach wrote:
BTW, since you don't need a deep copy of the arguments structure in the
cfc
you can just do <cfset my = arguments> to simplify.


Christopher Jordan wrote:
Rick,

First will you be using Rob Gonda's AjaxCFC for jQuery? I'd recommend it, even though it's still in alpha3. I'm using it on a client's application and it works just fine.

So for this mortgage calculator, you've got your form with the fields for input (technically speaking this doesn't even have to be an html form since you'll be using Ajax to send the data and receive the calculation):

<script type="text/javascript" src="Include/js/jquery.js"></script>
<script type="text/javascript"
src="Include/js/jquery.AjaxCFC.js"></script>
<script type="text/javascript">$.AjaxCFC({require:'json,wddx,dump,log4j,someotherjsfiles'});</script>

<script>
    function CalculateMortgage(){
// first use jQuery to get all the field values we'll need to make the calculation
        // this example assumes the very simple form I've got listed
below.
        var Params = {};
        // select all inputs of type text
        $("input:text").each(function(){
            Params[$this.name] = $this.value;
        });
//once this is done above we'll have an object (like a CF structure) which is the equivalent of {"VarName":"Value", "VarName2":"Value"} // these are named arguments, so you'll notice in the code below that unnamedargs is set to false.
        $.AjaxCFC({
            url: "CFC/MortgageCalculator.cfc",
            method: "CalculateResult",
            data: Params,
            unnamedargs: false,
            serialization: "string",
            success: function(data) {
// great we got our calculation back. So now append it to the span tag holding the result.
                $("#Result").empty().append(data);
            }
        });
    }

</script>

<form name="f">
    <input type="text" name="Principal">
    <input type="text" name="InterestRate">
    <input type="text" name="Duration">
    <span id="Result"></span>
    <input type="button" value=" Calculate "
onClick="CalculateMortgage();">
</form>

Your CFC would look something like:

<cfcomponent extends="ajax.cfc">
    <cffunction name="CalculateResult" returntype="numeric">
        <cfscript>
// Rick, you should note, that this is just the way *I* handle arguments coming into a cfc and there are possibly better ways.
           var my = StructNew();
// this loop takes everything that was passed into the arguments structure and puts it in the local 'my' structure. // I do this because 'my' has been var'd so everything in it is var'd as well. This means that throughout my function
           // I don't have to var anything else.
           for(my.KeyName in Arguments){
               "my.#my.KeyName#" = Arguments[my.KeyName];
           }

// now do the calculation... I'm not going to pretend that I know how to do the interest calculation off the top of my head.
           // I'm assuming you can do this already.
return my.Principal * my.InterestRate * my.Duration; // or whatever.... you get the idea I hope.
        </cfscript>
    </cffunction>
</cfcomponent>

The calculated result will be returned to the ajaxcall in the 'success:' section. Does this make sense? Does it help? If not, let me know where you need clarification, and I'll see what I can do. :o)

Cheers,
Chris

Rick Faircloth wrote:
Hi, all...

I've just started using jQuery recently and now

I'm trying to understand how to use it with AJAX

and I just don't know enough about how it works

to get started on a fairly simple app.  The sample app I've

been tinkering with sends a URL variable for a User_ID

using AJAX to a CF page, which runs a query and

returns the info to the calling page and appends

it to the body.  I'd like to send results back to the

form fields, as well as the calculated result.

I just don't have a clue how to set this up.

I have a mortgage calculator and I want the user

to be able to enter the principal, interest rate,

and duration in years, then run a calculation on it

and return the result.

I've set this up in a regular form that submits back

to the page it's on and it works fine.  It's coded in CF.

I'd like to be able to calculate and return the results using AJAX.

I've worked some very simple code using AJAX (actually

it was given to me), but I have no idea how to code for

the above scenario.

Would anyone care to give this CF'er some guidance

on creating this small jQuery/CF/AJAX app?

Thanks for any help!

Rick

------------------------------------------------------------------------

_______________________________________________
jQuery mailing list
discuss@jquery.com
http://jquery.com/discuss/
--
http://www.cjordan.us


_______________________________________________
jQuery mailing list
discuss@jquery.com
http://jquery.com/discuss/


--
http://www.cjordan.us


_______________________________________________
jQuery mailing list
discuss@jquery.com
http://jquery.com/discuss/




--
http://www.cjordan.us

_______________________________________________
jQuery mailing list
discuss@jquery.com
http://jquery.com/discuss/

Reply via email to