Phil setting the content of an element via the innerHTML property was deprecated for the $("elmentid").update(content) function. Or by using the $("elmentid").insert(content) function if appropriate.
Jason Westbrook | T: 313-799-3770 | jwestbr...@gmail.com On Fri, Jul 27, 2012 at 1:19 PM, Phil Petree <phil.pet...@gmail.com> wrote: > 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. > -- 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.