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.

Reply via email to