Hi,

I am not sure, but it could be a problem like
http://groups.google.com/group/cake-php/browse_thread/thread/d7c97c5f6f2ffc8e/db10a26a5d2c113c?show_docid=db10a26a5d2c113c

Better use http://bin.cakephp.org/ to post your code.

Hope this helps,

Michael

On 26 Jun., 09:07, Mike <[EMAIL PROTECTED]> wrote:
> Hello!
>
> I've looked at the docs, at the API, and a little bit at the source,
> as well as Googling around for this, but I can't seem to find any
> answers, and I'm kinda stuck :)
>
> I'm trying to use the Cake 1.2.0.6311 (beta) distribution, and I've
> tried it using both FireFox 3 and IE 7.0.5730.13
>
> I'm trying to use Cake's built-in AjaxHelper, to create form with a
> 'cascading select' - the user is presented with a drop-down list (a
> select), and once they've made a section, then the observeField that
> was watching that select uses
> the built-in AJAX support to update an $ajax->div, in order to add the
> second drop-down (as well as a second observeField, for that drop-
> down)
>
> The problem I'm running into is that when I try to update the div, it
> doesn't actually print the script (as far as I can tell).  When I use
> FireBug, I can verify that the non-javascript output is present on
> either side of the script in the div, but the actual output of 
> $ajax->observeField is not there. (This is annotated in the code below with
>
> "NOTE NOTE NOTE")
>
> The odd thing is that when I write the first select into the form, and
> the first observeField (i.e., when the page is first generated), that
> all works fine - it's only when I try to put the observeField output
> into the div that I'm updating that problems arise.
>
> If anyone has any experience with this, and wouldn't mind helping me
> out, I'd greatly appreciate it!  :)
>
> I'll include the code here, in case it's helpful:
>
> (Yeah, it's awful stuff - I've been stuck on the 'getting it to work'
> phase, and so haven't been able to go back & polish it up)
> ****************** View Code Snippet (student.ctp) **************
>
>                 <td colspan="4"><fieldset><legend>Enroll In A Course</legend>
>                         <?php
>                                 echo $ajax->form(    array('action' => 
> '/main/enrollInCourse'),
>                                                                         
> 'post',
>                                                     array('update' => 
> 'dynamic1', 'id'
> =>'courseSelectionForm' ));
>
>                                 echo 'First, choose a term: ';
>
>                                 echo $this->renderElement('selectTerm',
>                                                         array(  'termList' => 
> $terms,
>                                                                         
> 'formHelper' => $form) );
>                                 // This element I made - it generates 
> something like:
>                                 // <select name="data[SELECTTERM]" 
> id="SELECTTERM">
>                                 // <option value="-1" 
> selected="selected">Select A Term</option>
>                                 // <option value="2">2002 Winter</option>
>                                 // <option value="1">2001 Fall</option>
>                                 // </select>
>
>                                 echo $ajax->observeField('SELECTTERM', array( 
>        'frequency'=>'1',
>                                                                               
>                                                   'url'=>'/main/updateCourse',
>                                                                               
>                                                   'update'=>array('dynamic1', 
> 'dynamic2'),
>                                                                               
>                                                    ) );
>
>                                 echo $ajax->div('dynamic1');
>
>                                 echo "<pre>data2: ";
>                                 print_r($data2);
>                                 echo '<br/>showC: ' . $showCourses;
>                                 echo "</pre>";
>
>                                 $WTF = $ajax->observeField('SELECTCOURSE',
> array(  'frequency'=>'1',
>                                                                               
>           'url'=>'/main/updateCourse',
>                                                                               
>           'update'=>array('dynamic1', 'dynamic2'),
>                                                                               
>            ) );
>
>                                 if($showCourses)
>                                 {
>                                         echo 'Next, choose a course: ';
>                                         echo 
> $this->renderElement('selectCourse',
>                                                         array(  'courseList' 
> => $courses,
>                                                                         
> 'formHelper' => $form) );
>                                         // This element I made - it generates 
> something similar to
> selectTerm
>
>                                         // NOTE NOTE
> NOTE::::::::::::::::::::::::::::::::::::::::::::::::::::::
>                                         // Here's where it gets weird:
>                                         $cln = new Sanitize();
>                                         echo $cln->html($WTF); // I can see 
> this output fine
>
>                                         echo "WTF????" . $WTF . "SFSDFSD";
>                                         // I can see WTF????, and I can see 
> SFSDFSD, but according to
> FireBug,
>                                         // there's no <script> element 
> between them!
>
>                                 }
>
>                                 echo $ajax->divEnd('dynamic1');
>
>                                 echo $ajax->div('dynamic2');
>
>                                 echo 'Finally, click here to enroll! ' . 
> $goodToGo . 'fff<br/>';
>                                 if($goodToGo)
>                                 {
>                                         echo $form->end( 'Submit');
>                                 }
>                                 else
>                                 {
>                                         echo 'ending form...';
>                                         echo $form->end( );
>                                 }
>                                 echo $ajax->divEnd('dynamic2');
>                         ?>
>                         <hr/>
>
>                 </fieldset></td>
>
> ****************** Controller Code Snippet (main_controller.php)
> **************
>
> function updateCourse()
> {
> //              $this->layout='defaultajax';
>
>         $terms = $this->Term->find('all', array(
>                           //'conditions' => array('name' => 'Thomas
> Anderson'),
>                           //'fields' => array('name', 'email'),
>                           'order' => 'year DESC',
>                           'recursive' => 1,
>                           //'group' => 'type'
>                                           )) ;
>
>         // get rid of any terms that have no courses...
>         foreach(array_keys($terms) as $key)
>         {
>                 if(empty($terms[$key]['Course']))
>                 {
>                         unset($terms[$key]);
>                 }
>         }
>         $this->set('terms', $terms );
>
>         $this->set('data2',  $this->params['data']);
>
>         $this->set('showCourses', false);
>         $this->set('goodToGo', false ) ;
>
>         //TODO:SECURITY: Do we need to check the value coming back from the
> client?
>         $courses = $this->Term->find(array('id' => $this->params['data']
> ['SELECTTERM']),
>                         null, null, 1) ;
>         if(!isset($this->params['data']['SELECTTERM']) || $courses == null)
>         {
>         $this->render('student', 'ajax');
>                 return;
>         }
>
>         $this->set('courses',  $courses['Course']);
>         $this->set('showCourses', true);
>
>         if( isset($this->params['data']['SELECTCOURSE'])  &&
>                         $this->Course->find(array('id' => 
> $this->params['data']
> ['SELECTCOURSE']),
>                         null, null, 1) )
>         {
>                 $this->set('goodToGo', true ) ;
>         }
>
>     // use ajax layout
>     $this->render('student', 'ajax');
>
> }
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" 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/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to