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.

Reply via email to