Well here is my final working solution, its the best I can do I think... if ( \$(e.target).is('.legacy_view') ){ \$("#loading").toggle(); var query = \$("#legacy_data").val(); var array = query.split(','); \$("#query").load("/mysite/thepage.pl", {foo: array[0], bar: array[1]}, function(){ \$("#loading").toggle(); });
Thanks for the help. On Oct 4, 3:15 pm, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> wrote: > The only reason the \'s are in the JAVASCRIPT code is because perl > users the $ sign to declare a scalar variable reference. I'm > generating this code completely myself, the problem is this function > is built way before the perl code even starts to run, the perl code is > just putting the data it creates somewhere for javascript to pick it > up later. (Thus the hidden form box). I'm pre-formatting with perl the > way that its dropping it into the box. I'm just looking for a way to > pick this data up from this input box and use it as the postdata. > > On Oct 4, 10:52 am, "Michael Geary" <[EMAIL PROTECTED]> wrote: > > > The code below is not JavaScript code. It's Perl code. You wouldn't have > > those backslashes in JavaScript code. > > > That's the problem I was referring to: You're trying to debug JavaScript > > code, but you're not looking at the JavaScript code itself, you're looking > > at the Perl code that *generates* the JavaScript code. That is a recipe for > > confusion. > > > Anyway, it sounds like you're not giving jQuery's load() function the proper > > format for the data variables. They should be in a JavaScript *object*, not > > a string. Are you expecting Foo and Foo2 to come back to your submit page as > > separate variables with values of 'Bar' and 'Bar2' respectively? > > > If so, is there any reason you have to put that data in a hidden input > > field? Could your Perl code just write the correct JavaScript object > > directly instead? > > > The code you'd want (the *JavaScript* code, not the Perl code) would be > > something like: > > > var postdata = { > > Foo: 'Foo2', > > Bar: 'Bar2' > > }; > > > ... > > $('#query').load( '/theurl', postdata, function() {...} ); > > > That would then do a POST to your URL with the proper data. (You do want a > > POST, not a GET, right?) > > > -Mike > > > > From: [EMAIL PROTECTED] > > > > I'm not trying to debug anything on the perl side, like I > > > said in my original post I'm very new to Javascript, so there > > > is something I'm not getting in javascript that is causing problems. > > > > I'm creating a string in perl that looks like this "Foo: Bar:, Foo2: > > > Bar2" and I'm writing that to a hidden input box. Then i want > > > jQuery to pick up the string inside the input box and use the > > > value from the input box as the variables for the send > > > request to the .load page. > > > > However, for some reason its not quite working, here is what > > > I have now that seems to work better, but isn't quite there... > > > > if ( \$(e.target).is('.legacy_view') ){ > > > \$("#loading").toggle(); > > > var thequery = \$("#legacy_data").val(); > > > alert (thequery); > > > \$("#query").load("/mysite/thepage.pl", > > > thequery, function(){ > > > \$("#loading").toggle(); > > > }); > > > > The alert is for debugging, it tells me the correct format > > > and then moves on. I can see on my error log of thepage.pl > > > that it is not getting the values passed to it at all. So > > > something must be wrong in my function. Anyone have any ideas? > > > > On Oct 3, 11:31 am, "Michael Geary" <[EMAIL PROTECTED]> wrote: > > > > The problem is you're thinking in Perl. Forget Perl. You > > > need to think > > > > in HTML and JavaScript. You're trying to debug both sides > > > at once and > > > > that's not easy. > > > > > Instead, isolate the two problems. Load your page in the > > > browser and > > > > do a View Source to get the HTML code. Save that to a .html > > > file. It > > > > should load in your browser just like the one generated from Perl. > > > > Tweak the HTML/JavaScript code and get it working. > > > > > Then, go back to your Perl code and figure out how to generate the > > > > HTML and JavaScript that you've updated. It should be a much easier > > > > task once you know what the working target is. > > > > > -Mike > > > > > > From: [EMAIL PROTECTED] > > > > > > In perl I'm generating the list, e.g. = $helloworld = > > > "hello: var1, > > > > > goodbye: var2", so basically I'm getting this string from > > > the input > > > > > box, and I want to have jQuery use this string rather > > > than expecting > > > > > values, so I want thequery to be evaulated into the list for the > > > > > jquery function to process it. > > > > > > On Oct 2, 7:29 am, Dave Methvin <[EMAIL PROTECTED]> wrote: > > > > > > > \$("#query").load("/mysite/thepage.pl", > > > > > {thequery}, > > > > > > > function(){ > > > > > > > In this case the error is right. {thequery} is not a valid > > > > > initializer > > > > > > for an object. > > > > > > > Maybe you meant {data: thequery} or something like that? > > > > > What is the > > > > > > name of the parameter that your Perl page expects to get > > > > > from the URL > > > > > > querystring?