Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony] observe_field() i 3 selecty
parzol
post 15.10.2009, 21:06:34
Post #1





Grupa: Zarejestrowani
Postów: 135
Pomógł: 1
Dołączył: 7.05.2005

Ostrzeżenie: (0%)
-----


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?


Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 00:23