Maybe add it on "onSuccess" too ! just to be safe!
----- Original Message ----- 
From: "anthony" <mrsmi...@gmail.com>
To: "Prototype & script.aculo.us" <prototype-scriptaculous@googlegroups.com>
Sent: Wednesday, June 17, 2009 5:30 PM
Subject: [Proto-Scripty] Re: Prototype and forms



Here was the problem.

I should have been calling the function (getAdjForm) using onComplete:

function getTerritories() {

var params = $('createAdjForm').serialize();
new Ajax.Updater(
"territories",
"<?= $this->url(array('controller'=>'index', 'action'=>'get-
territories'))?>",
{method:'post',
parameters: params,
onComplete: getAdjForm});
}

I have a lot to learn.

On Jun 17, 10:54 am, "Alex McAuley" <webmas...@thecarmarketplace.com>
wrote:
> Because the contents are from an AJAX request and they dont exist in the
> DOM probably .....
> OR..
>
> They are outside the </form> tag ....
>
> Paste full code to a pastie and we can help
>
> ----- Original Message -----
> From: "anthony" <mrsmi...@gmail.com>
> To: "Prototype & script.aculo.us" 
> <prototype-scriptaculous@googlegroups.com>
> Sent: Wednesday, June 17, 2009 4:52 PM
> Subject: [Proto-Scripty] Re: Prototype and forms
>
> Ok, I have found a better way to explain this.
>
> var params = $('createAdjForm').serialize();
> alert(params);
>
> This does not show the form elements that were included via: <div
> id="territories"></div>
>
> Why is that the case?
>
> On Jun 17, 9:06 am, anthony <mrsmi...@gmail.com> wrote:
> > Thanks for the cleanup. I have made those changes. Feel free to post
> > others. The problem I have is that the form had two dynamic places:
>
> > <div id="territories"></div>
> > and
> > <div id="adjForm"></div>
>
> > There is an onChange that calls the javascript function getTerritories
> > () allows the
> > <div id="territories"></div> to display which has a form element
> > called territory. At the end of the same function, it calls the other
> > javascript function getAdjForm(). getAdjForm() looks to see if the
> > form element territory exists. That's the problem, for some reason, it
> > cannot see it. What can I do to make it where it does not fail the if
> > statement in that function?
>
> > On Jun 16, 11:33 am, Rick Waldron <waldron.r...@gmail.com> wrote:
>
> > > A few things...
>
> > > var params = Form.serialize($('createAdjForm'));
>
> > > You can clean this up as:
>
> > > var params = $('createAdjForm').serialize();
>
> > > There are other points that you could optimize, but thats not your
> > > question...
>
> > > And at whatever point you want adjForm to appear, you need to add:
>
> > > $('adjForm').show()
>
> > > Rick
>
> > > On Mon, Jun 15, 2009 at 5:46 PM, anthony <mrsmi...@gmail.com> wrote:
>
> > > > I have a form that when a user selects something from a drop-down,
> > > > another element in the form appears. There is another piece of the
> > > > form, that is never showing up, I need to understand what I am doing
> > > > wrong and how to fix it:
>
> > > > <script type="text/javascript" language="JavaScript">
> > > > function getAdjForm() {
>
> > > > var params = Form.serialize($('createAdjForm'));
> > > > alert($('territory').value);
>
> > > > if ($('adjType').value !== "" && $('territory').value !== ""){
>
> > > > new Ajax.Updater(
> > > > "adjForm",
> > > > "<?= $this->url(array('controller'=>'index',
> > > > 'action'=>'get-adj-
> > > > form'))?>",
> > > > {method:'post',
> > > > parameters: params});
> > > > }
> > > > }
>
> > > > function getTerritories() {
>
> > > > var params = Form.serialize($('createAdjForm'));
> > > > new Ajax.Updater(
> > > > "territories",
> > > > "<?= $this->url(array('controller'=>'index', 'action'=>'get-
> > > > territories'))?>",
> > > > {method:'post',
> > > > parameters: params});
>
> > > > if ($('adjType').value !== ""){
> > > > //alert('ddddddddd');
> > > > getAdjForm();
> > > > }
> > > > }
>
> > > > function getCustomer() {
>
> > > > var params = Form.serialize($('createAdjForm'));
> > > > new Ajax.Updater(
> > > > "customer",
> > > > "<?= $this->url(array('controller'=>'index', 'action'=>'get-
> > > > customer'))?>",
> > > > {method:'post',
> > > > parameters: params});
> > > > }
>
> > > > </script>
>
> > > > <form method="POST" id="createAdjForm" action="">
> > > > <p>
>
> > > > <table border="0" CELLSPACING="10">
> > > > <tr>
> > > > <td>
> > > > <b>Select Adjustment Type</b>
> > > > </td>
> > > > <td>
> > > > <?php echo $this->formSelect('adjType',
> > > > $this->adjType, array
> > > > ("onChange"=>"getAdjForm()"), array(""=>"Select an Adjustment Type") 
> > > > +
> > > > $this->adjTypes) ?>
> > > > </td>
> > > > </tr>
> > > > <tr>
> > > > <td>
> > > > <b>Submitting Territory</b>
> > > > </td>
> > > > <td>
> > > > <?php echo $this->formSelect('shortTerritory',
> > > > $this-
> > > > >shortTerritory, array("onChange"=>"getTerritories()"), array
> > > > (""=>"Select a Territory") + $this->shortTerritories) ?>
> > > > <div id="territories"></div>
> > > > </td>
> > > > </tr>
> > > > <tr>
> > > > <td valign="top">
> > > > <b>Justification</b>
> > > > </td>
> > > > <td>
> > > > <?php echo
> > > > $this->formTextarea('justification',$this-
> > > > >justification,array("rows"=>"5","cols"=>"75")) ?>
> > > > </td>
> > > > </tr>
> > > > </table>
> > > > <hr>
> > > > <div id="adjForm">
> > > > </div>
>
> > > > ***********************************
> > > > This issue is that the data that should be here:
> > > > <div id="adjForm">
> > > > </div>
> > > > Is never showing. When getAdjForm(); is called from 
> > > > getTerritories(),
> > > > the $('territory').value !== "" seems to be the problem. Does the
> > > > browser not know that was an element because it just appeared?



--~--~---------~--~----~------------~-------~--~----~
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