Don't worry about that wall, I've already got a nice soft dent in it! On Jul 27, 2012 5:38 PM, "Jim Longo" <jimlong...@gmail.com> wrote:
> Thanks both Jason and Phil, there's a lot of new things to try there. > I'll see if they lead me anywhere, and prevent me from breaking the wall > that I have been banging my head against. :) > > > > On Friday, July 27, 2012 4:23:10 PM UTC-4, Jason wrote: >> >> >> 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 | >> >> >> On Fri, Jul 27, 2012 at 1:19 PM, Phil Petree 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 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 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/-/DdzCL1yvk7oJ. > 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.