JQuery :: $.post() Callback Executed No Data Passed
Jun 24, 2009
Here is my server side code:
Here is my javascript:
When i call alert(data), it says it is "undefined". i am new to jQuery, but this appears to mean that no data is being passed to the callback function even though i know the $.post() executed properly (the server side code is executing, and the other alert() tells me that it had a successful result and the callback is being made.
I am new to all this but making good progress and having fun in the process. I have written quite a bit over recent weeks (including a few $.post / $.ajax calls) for various sites/applications but this one is really puzzling me. Here is a snippet of code that is causing me problems.
[Code]....
The problem is that execution jumps from line 2 to line 6 ... ignoring the function(data) and I am not sure why. I get the correct value of "team" arriving at the perl script .... and the perl writes the correct json back. I just can't think where else I need to look to debug this - as I said, I have done something similar 5-6 times over the last few weeks - all without a problem. So I am sure I am doing something stupid here.
I then delete testFile.txt and click on 'Submit' without refreshing, and this time, it does NOT create testFile.txt - and hence, my guess is that it is not calling on functions.php, and of course, alert is empty as usual.
What I want to do is this: I want to be able to click on the Submit button - without refreshing the page - and return data from functions.php and display it within a div tag on index.php What am I doing wrong to get an empty alert?
I have an unordered list with each LI having an onclick event of "changeTabContent". When the page loads, I trigger the active LI's click. On a click, first thing I do is remove the previous results, which are a UL living under the "li.active" element. Next, I move the "active" class to the LI that was pushed and off the old one. Next, I add a loading animation to the screen. Next I append a new UL to the new "li.active" and use the load() method to insert a bunch of LI's from a different page. onSuccess, I remove the loading animation. [note 1] Next, you'll see a hack I added, more on that in a minute... Last two steps are to add a "more" link to the bottom of the returned li's, if a link was passed into the function, and finally I remove a handful of LI's (excluding more link) so there are only "x" on the screen.
My #1 problem is that the more link is not showing up at times, and the cleanList function is not removing LI's. I believe the problem is that with the load being async, sometimes those last two steps are being hit, but there is no LI's in the DOM yet. You can see I tried to run a hack so the while loop will execute when there is no "ul" yet. [note 1] - I tried to add the final two steps into the load() callback, but the LI's were NEVER loaded in the DOM when the callback function was executed.
I am trying to retrieve json data from the world bank's API, here's my code: <html> <head> <script src="[URL]"></script> <script type="text/javascript"> var theData; $(document).ready(function(){ $("button").click(function(){ $.ajax({ url: '[URL]', success: function(data) { /*this alert message does not show*/ alert(data); }, dataType: 'json' }); }); });
</script> </head> <body> <p></p> <button> Get World Bank Data </button> </body> The callback function is not executed but there is response when I checked it using firebug.
I've got an Ajax post that has been working fine with version 1.3.2 of jQuery, but when I tried it with version 1.4.2 it doesn't work. Specifically, the callback function is not firing when I define a variable equal to the function and then pass the post that variable.
Thus, in the following, if I call getCustList, the agent GetCustomerListSelection will run successfully on the server, but the ShowResult function will not fire. On the other hand, if I replace "ShowResult" in the post parameters with, say, "alert('You made it!')", then that works fine.
???? ////////////////////////////////////////////////////////////////////////////////////////////////////// // Define return function for AJAX var ShowResult = function(result) {
I can't seem to get a variable declared from within a post callback, so that I could manipulate my script accordingly. I have delete.php, that deletes an id from a mysql db. If it fails, I want the script to stop and display the error. The .php script echos an "ok" if everything went fine, if not - it echos the error.var abort_error; // set the error variable
Is there any was to prevent ampersand from splitting up the passed data? For example if my data looks like: "This is some text&blah blah" If I pass it as data it will get split up at "&": This is some text blah blah
As you can see in the "action" attribute, I'm calling this function:
function SubmitEditedInvoice(invno) { $.post('output.php?mode=6&invno=' + invno, $('#formEditInvoice' + invno).serialize(), function(output){[code]....
The problem I'm having is that no data is passed to the PHP back end. I have verified that the variable invno is correctly passed to the javascript function, and have tested my .serialize() by using a hard-coded form ID, but I still get no data passed through.
The following function runs on form submit. The code appears to process correctly, the create.php file does it's job, but I'm directed to the create.php page and stay there, so the callback function never runs.. What do I have to change to get create.php to process 'behind the scene', and to stay on the original web page, instead of being redirected to create.php?
I wonder if i can make the variable data which is [data] in jQuery.post( url, [data], [callback], [type] ) dynamic. for instance, this is the form i want to send,
I am writing a small data entry screen that will post the form data to a page and return a message. But i cannot get the Success or Error functions working properly.
Here's the code where strData is the posted querystring of:
I'm not sure whether it should be in a form and using the onsubmit or click of a button.
The answer to my question is probably very simple, but I'm having trouble making this work.
I want to access a local csv file, rearrange it into an array, and use the data later in my script. The logic of this in psuedocode is [code]...
Since the massaged data are in the callback, they're not available at ***. I've tried declaring the variables outside the callback as shown, but this doesn't seem to work either. I'm thinking there must be an easier way. Is there?
<span style="font-family: courier new,monospace;">Hello all,</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">I've recently started with jQuery because I wanted to use it for posting details from an login form to a PHP script which should return whether the user is authenticated ox not.</span><br style="font-family: courier new,monospace;"> <br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">For this I use $.ajax, because of it's flexibility and I prefer to use it in this implementation. Reading (jQuery docs and examples) and searching a lot did not solve me on one issue: fetching the data in the callback to the global scope.
at the end of the animation, I'm trying to run a function that relates to 'i', but every time it represents the last possible number instead of a range
for (var i = 0; i < bubbleArray.length; i++) { var _this = bubbleArray[i] var mLeft = parseInt($(_this.div).css('margin-left').split('px')[0]);
Is it possible to access the data arguments that are sent with the ajax function? Example:
$('#mycheckbox').click( function() { $.get( '/ajax.php', { nr: this.id }, function( data, textStatus ) { // Here I want to access the arguments I just sent with ajax.php
[Code]....
I could easily do $('#mycheckbox').attr('checked', 'checked'); but that is not what I want. Also I don't want to send the arguments with the response. Anyone knows a solution? I can't find it in the documentation of jQuery and not in the discussions here.
I have Javascript code that looks like this: var data1; $.post('save_search.php', formData, function(data) { data1 = data; }); jsonData = eval('(' + data1 + ')'); if (jsonData.return_status.search("successful") > -1) $('#msg_div').html("<font color=red>Search was saved</font>"); else $('#msg_div').html("<font color=red>Search was not saved. Try saving again.</font>"); "data1" comes up as undefined in the statement jsonData = eval('(' + data1 + ')');
Even though "data" is a perfectly correct JSON string *inside* the callback function! I can put the eval statement inside the callback function and it will form a good JSON object, like this: jsonData = eval('(' + data + ')'); I'm simply trying to get my Ajax response data to the outside of my callback function so I can use it in other Javascript code. I've never seen an ordinary function behave this way.
Inside of a page, there is a iFrame, which houses WYSIWYG editor.I'm trying to pass data (passedString: html, inline css, text ...) to a popup.When I pass same string to same div with id="idx" located on a page, where iFrame is located, it receives it without problems.Problem appears, when I try to pass string to popup.
I'm currently working on a project using Ajax (just for a little background) bascially I click on a button and it loads the editing tool on the paragraph tag i've clicked on (well thats the idea). The ajax bits themselves aren't the problem I appear to have a this.elementId in my class loosing data or becoming undefined somehow. Code:
I'm a total JS/jQuery newbie, and I'm having a problem using jQuery's load() to POST data to a remote PHP script and rewrite a DIV with whatever the server sent back.
Using a proxy in between, I can see that the JS script isn't sending anything, so I guess there's something wrong in the JS code I send to the browser [code]...