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.

Reply via email to