Jim, I shoulda put this in my last email... Here are two ways to set the individual fields using prototype: $('my_div').innerHTML = szUpdate; $('my_form_field').value='what I want the value to be'; function success_function(transport) { var json = transport.responseText.evalJSON(true); // php would return: // $options = Array('status' => "OK", 'text' => "OK"); // $output = json_encode($options); // echo $output; // it's the status in the Array we're checking... if(json.status == "OK") { // do stuff $(activeButton).replace('<font color="green">Subscribed'); $('my_div').innerHTML = "<h1>AJAX Response</h1><p>" +json.text +"</p>"; } }
On Fri, Jul 27, 2012 at 4:05 PM, Phil Petree <phil.pet...@gmail.com> wrote: > Jim, > > Did Jason's code not work? > > And you're right, the examples and docs totally suck... it's like trying > to decipher some secret code that someone forgot to let the rest of us > "normal" programmers in on. > The purpose of AJAX calls is to reduce bandwidth and server hits by > reducing the number of page hits. It's easier, cheaper, faster to just > send the data the user needs vs the entire page. > > Prototype has two functions for Ajax calls: Ajax.Updater and Ajax.Request. > I stopped using Ajax.Updater for anything other than single element > updates. > > Breaking down an Ajax.Request call for you it would look something like > this: > > var options = { > method: 'post', > parameters: $('myform').serialize(), > onSuccess: success_function, > onFailure: ajax_err, > on0: ajax_err > }; > new Ajax.Request( url+".php", options ); > function success_function(transport) > { > var json = transport.responseText.evalJSON(true); > > // php would return: > // $options = Array('status' => "OK", 'text' => "OK"); > // $output = json_encode($options); > // echo $output; > // it's the status in the Array we're checking... > if(json.status == "OK") > { > // do stuff > $(activeButton).replace('<font color="green">Subscribed'); > } > } > function ajax_err(transport) > { > alert("An AJAX error occurred: " +transport.statusText); > } > > > On Fri, Jul 27, 2012 at 3:40 PM, Jim Longo <jimlong...@gmail.com> wrote: > >> Thanks Phil, >> >> I do want to call a javascript function. >> But let me try to simplify my problem. >> >> Here is a page . . . >> <div id="myDiv"></div> >> <script type="text/javascript"> >> new Ajax.Updater('myDiv', 'XYZ.html', {evalScripts: true}) ; >> </script> >> >> Here is the page being called . . . >> <script type="text/javascript"> >> sayHi = function(){ >> alert ('Hi'); >> }; >> </script> >> <input type="button" value="Click Me" onclick="sayHi()"/> >> This will work, in the sense that myDiv will remain and the alert will >> display. >> >> My problem is that if I replace *alert* with *document.write* then the >> page gets replaced with a new page. I thought the idea behind AJAX.Updater >> was to replace the DIV with new data, or in this case the result of the >> function. *So in my newbie logic the DIV should get replaced with the >> text generated by document.write.? * >> >> >> I have tried to figure what you mean by using onSuccess, but I fail to >> get the right syntax, and it's very hard to find in the docs. I assume you >> mean to call the function as part of the onSuccess parameters. However the >> example above does seem to execute the function from called page, it's just >> that it works with alert but not document.write and this is doesn't make >> sense to me (yet). >> >> >> >> >> >> >> >> On Friday, July 27, 2012 10:46:33 AM UTC-4, ppetree wrote: >> >>> then perhaps we're not understanding what you mean by "passed" >>> >>> normal process is: >>> onSuccess: call a function that processes the incoming data >>> onFailure: tell the user what happened >>> >>> what gets "passed" is data. >>> what gets "called" are functions. >>> >>> having code in an external file indicates to me you want to call a >>> function. >>> >>> I think a little more clarity might help us help you. >>> >>> On Fri, Jul 27, 2012 at 10:21 AM, Jim Longo wrote: >>> >>>> Thanks for your response. I'm sorry, I forgot to mention I had tried >>>> that. The request is successful (as I mentioned I can pass html and php, >>>> just not javascript) >>>> >>>> >>>> On Friday, July 27, 2012 7:35:11 AM UTC-4, ppetree wrote: >>>> >>>>> Try using the onsuccess on failure parameters in Ajax updater. >>>>> >>>>> onFailure: function() {alert("bombed");}, >>>>> onSuccess: ... >>>>> On Jul 27, 2012 12:04 AM, "Jim Longo" wrote: >>>>> >>>>>> If it helps, I can replace the js with something real simple (an >>>>>> alert) and it still won't run in the AJAX page. If I put plain text or >>>>>> html or php in the external file it will run, but not javascript. >>>>>> >>>>>> >>>>>> -- >> You received this message because you are subscribed to the Google Groups >> "Prototype & script.aculo.us" group. >> To view this discussion on the web visit >> https://groups.google.com/d/msg/prototype-scriptaculous/-/-2gPjjF2osEJ. >> >> To post to this group, send email to >> prototype-scriptaculous@googlegroups.com. >> To unsubscribe from this group, send email to >> prototype-scriptaculous+unsubscr...@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/prototype-scriptaculous?hl=en. >> > > -- You received this message because you are subscribed to the Google Groups "Prototype & script.aculo.us" group. To post to this group, send email to prototype-scriptaculous@googlegroups.com. To unsubscribe from this group, send email to prototype-scriptaculous+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/prototype-scriptaculous?hl=en.