Mam trzy selecty: Kraj, Region i Miasto.

  1. <?php echo select_tag('kraj', options_for_select($kraj_array, isset($kraj) ? $kraj : 1), 'style=width: 170px;'); ?>
  2. <span id="regionoo">
  3. <?php echo select_tag('region', options_for_select($region_array, isset($region) ? $region : 0), 'style=width: 170px;'); ?>
  4. </span>
  5.  
  6. <?php echo observe_field('kraj', array('update' => 'regionoo', 'url' => '@region', 'with' => "'param=' + value", 'frequency' => '1')); ?>
  7.  
  8. <span id="miastooo">
  9. <?php echo select_tag('miasto', options_for_select($city_array, isset($miasto) ? $miasto : 0), 'style=width: 170px;'); ?>
  10. </span>
  11.  
  12. <?php echo observe_field('region', array('update' => 'miastooo', 'url' => '@miasto', 'with' => "'param=' + value", 'frequency' => '1')); ?>
  13. <?php echo select_tag('kategoria', options_for_select($category_array, isset($kategoria) ? $kategoria : 0), 'style=width: 170px;'); ?>



W kontrolerze:

  1. public function executeMiasto() {
  2. $region_id = $this->getRequestParameter('param');
  3.  
  4. $c = new Criteria();
  5.  
  6. if(isset($region_id) && $region_id != 0)
  7. $c->add(CityPeer::REGION_NAME, $region_id);
  8.  
  9. $c->addAscendingOrderByColumn(CityPeer::NAME);
  10. $a = CityPeer::doSelect($c);
  11.  
  12. $city_array[0] = 'Bliskość miast';
  13.  
  14. foreach($a as $wartosc)
  15. $city_array[$wartosc->getId()] = $wartosc->getName();
  16.  
  17. if(!empty($city_array))
  18. $this->city_array = $city_array;
  19. }
  20.  
  21. public function executeRegion() {
  22. $kraj_id = $this->getRequestParameter('param');
  23.  
  24. $c = new Criteria();
  25.  
  26. if(isset($kraj_id) && $kraj_id != 0)
  27. $c->add(RegionPeer::COUNTRY_NAME, $kraj_id);
  28.  
  29. $c->addAscendingOrderByColumn(RegionPeer::NAME);
  30. $a = RegionPeer::doSelect($c);
  31.  
  32. $region_array[0] = 'Region';
  33.  
  34. foreach($a as $wartosc)
  35. $region_array[$wartosc->getId()] = $wartosc->getName();
  36.  
  37. if(!empty($region_array))
  38. $this->region_array = $region_array;
  39. }


Za pierwszym razem wszystko działa, ale im dłużej zmieniam między sobą wartości to nic się nie zmienia zwłaszcza miasto. Czemu? Robię coś źle? Przy 2 dowolnych polach wszystko gra. Po dodaniu tego trzeciego mam ten problem. FireBug nic nie pokazuje. Jakiś pomysł? Robił ktoś coś podobnego?