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.

Reply via email to