Hi Geoff,
> it works fine and also works with just
> var params = ({ count: counter });
Good, good; I thought it probably would, since JavaScript objects are
essentially hashes anyway.
> re var params = ({ count: counter });
> I have just realised that the above is equivalent to
> var params = 'count=' + counter;
> Correct?
No, they're different. This defines an object with a count property:
var params = { count: counter };
This defines a url-encoded string (provided 'counter' is numeric or
something):
var params = 'count=' + counter;
The 'parameters' input to Ajax.Updater allows you to supply either. If
you supply a Hash-like object, Ajax.Updater just converts it to a url-
encoded string for you.
--
T.J. Crowder
tj / crowder software / com
On Mar 3, 10:57 am, geoffcox <[EMAIL PROTECTED]> wrote:
> re var params = ({ count: counter });
>
> I have just realised that the above is equivalent to
>
> var params = 'count=' + counter;
>
> Correct?
>
> Cheers
>
> Geoff
>
> On 3 Mar, 10:31, "T.J. Crowder" <[EMAIL PROTECTED]> wrote:
>
> > Geoff,
>
> > The parameters you send with a request are name/value pairs. The
> > 'parameters' option to Ajax.request can accept either a url-encoded
> > string, or any Hash-compatible object from which it can get the names
> > and values to send (seehttp://www.prototypejs.org/api/ajax/options).
> > From the code you posted, unless 'counter' is a url-encoded string of
> > some kind, you're not giving any name to your counter value.
>
> > Perhaps this:
>
> > function send(){
> > var params = $H({ count: counter });
> > new Ajax.Updater(
> > 'updateDiv',
> > 'send.php',
> > {
> > asynchronous:true,
> > method:'get',
> > parameters: params
> > }
> > );
>
> > }
>
> > With this PHP:
>
> > <?php
> > echo "Hello <p>";
> > $cue = $_GET['count'];
> > echo $cue;
> > ?>
>
> > In the send() method, I'm creating an object with one property (count)
> > set to the value of the counter variable, and then wrapping that in a
> > hash via $H (I'm not sure you really need to do that; you might try it
> > without the $H call and see if it works). (I could have done all that
> > within the call to Ajax.Updater, but I thought it would be clearer
> > doing it separately.) Then in the PHP, I'm retrieving the 'count'
> > parameter.
>
> > Hope this helps,
> > --
> > T.J. Crowder
> > tj / crowder software / com
>
> > On Mar 3, 9:04 am, geoffcox <[EMAIL PROTECTED]> wrote:
>
> > > No idea why my message appears twice!!?? Geoff
>
> > > On 3 Mar, 09:02, geoffcox <[EMAIL PROTECTED]> wrote:
>
> > > > Hello,
>
> > > > I am trying to use Ajax.Updater to send a javascript variable value to
> > > > MySQL.
>
> > > > To simplify matters I just want to see what is sent first so I have
>
> > > > <script type="text/javascript">
> > > > function send(){
> > > > var params = counter;
> > > > new Ajax.Updater('updateDiv', 'send.php',
> > > > {asynchronous:true,method:'get', parameters:params});
>
> > > > }
>
> > > > counter being the javascript variable value.
>
> > > > Question is - what should I have in the sever side php file?
>
> > > > At the moment in send.php I have
>
> > > > <?php
> > > > echo "Hello <p>";
> > > > $cue = $_GET['params'];
> > > > echo $cue;
> > > > ?>
>
> > > > The Hello does appear on the page but the $cue does not.
>
> > > > How should I do this?!
>
> > > > Cheers
>
> > > > Geoff
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Spinoffs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/rubyonrails-spinoffs?hl=en
-~----------~----~----~----~------~----~------~--~---