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 | [email protected]
On Fri, Jul 27, 2012 at 1:19 PM, Phil Petree <[email protected]> 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 <[email protected]>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 <[email protected]> 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
>>> [email protected].
>>> To unsubscribe from this group, send email to
>>> [email protected].
>>> 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
> [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> 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 [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/prototype-scriptaculous?hl=en.