2010-07-11 3 views

ответ

2

Я решил его, динамически добавив слушателя событий, используя функцию addEventListener() внутри функции window.onload().

+2

+1 Для выяснить это самостоятельно, следит за тем, что вы сделали и для выбора «право " путь. :-) Это на самом деле гораздо лучшее решение, чем тот, который вы запросили. Всегда стремитесь к ненавязчивому javascript. –

+0

@Rob: Согласовано. +1 на обоих. – mikegreenberg

1
<?php $html->script('jquery-1.4.2.min',false); ?> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
     $('#ProductBrandId').change(function(){ 
      getfamily() 
     }); 
    }) 

    function getfamily(){ 
     $.ajax({ 
       type : "GET", 
       url : "getfamily?id="+$('#ProductBrandId').val()&rid='+Math.random()/9.9, 
       success : function(opt){ 
        $('#familybox').html(opt) 
       } 
      }) 
    } 
</script> 

admin_getfamily.ctp

<?php 
    $options = array(
       'type' => 'select', 
       'options' => $family, 
       'label' => '', 
       'div' => '', 
       'style' => 'width:235px', 
       'error'=> false, 

      ); 

    echo $form->input(
      'Product.family_id', 
      $options 
    ); 
?> 

в контроллере

function admin_getFamily(){ 
     $this->layout = ''; 
     //debug($this->params['url']); 
     $brand = $this->params['url']['id']; 
     $family = array(); 
     if($brand > 0){ 
      $family = $this->Product->Brand->Family->find('list',array('fields' => 'Family.name','conditions' =>array('Family.brand_id' => $brand),'order' => 'Family.name')); 
     } 
     $this->set(compact('family')); 
    } 
Смежные вопросы