Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony]Przekazanie wartości formularza bez przeładowania strony
Forum PHP.pl > Forum > PHP > Frameworki
Zygmuntt
Witam wszystkich serdecznie,

potrzebuje przekazać do skryptu wartość z formularza, bez przeładowania strony, następnie w drugim polu SELECT wstawić jakaś wartość na podstawie tego wyboru, również bez przeładowania strony.

Poniżej pole formularza.

  1. $this->setWidget('cycle', new sfWidgetFormChoice(array(
  2. 'label' => __( 'Cycle'),
  3. 'choices' => $this->getCycles()
  4. ), array(
  5. 'class' => 'inputText',
  6. )));
  7.  
  8. $this->setValidator( 'cycle', new sfValidatorChoice( array(
  9. 'required' => true,
  10. 'choices' => array_keys( $this->getCycles())
  11. ), array(
  12. )));
  13.  
  14. $this->setWidget('test', new sfWidgetFormChoice(array(
  15. 'label' => __( 'Test' ),
  16. 'choices' => 'TUTAJ_AUTOMATYCZNE_PODSTAWIENIE'
  17. ), array(
  18. 'class' => 'inputTextshort',
  19. )));
  20.  
  21. $this->setValidator( 'test', new sfValidatorChoice( array(
  22. 'required' => true,
  23. 'choices' => ''
  24. ), array(
  25. )));
  26.  
  27. public function getCycles()
  28. {
  29. return array(
  30. 'DAY' => 'DAY',
  31. 'WEEK' => 'WEEK',
  32. 'MONTH' => 'MONTH',
  33. 'YEAR' => 'YEAR'
  34. );
  35. }
  36.  
  37. public function getCyclesValues() {
  38.  
  39. $arrCyclesValues = array(
  40. 'DAY' => array(
  41. 'start' => range(0,23),
  42. 'end' => range(0,23),
  43. ),
  44. 'WEEK' => array(
  45. 'start' => range(1,7),
  46. 'end' => range(1,7),
  47. ),
  48. 'MONTH' => array(
  49. 'start' => range(0,13),
  50. 'end' => range(0,13), 'can_be_empty' => true,
  51. ),
  52. 'YEAR' => array(
  53. 'start' => range(1,365),
  54. 'end' => range(1,365),
  55. ),
  56. );
  57.  
  58. $start_day_cycyle = $arrCyclesValues['DAY']['start'];
  59. $stop_day_cycyle = $arrCyclesValues['DAY']['stop'];
  60. $start_week_cycyle = $arrCyclesValues['WEEK']['start'];
  61. $stop_week_cycyle = $arrCyclesValues['WEEK']['stop'];
  62. $start_month_cycyle = $arrCyclesValues['MONTH']['start'];
  63. $stop_month_cycyle = $arrCyclesValues['MONTH']['stop'];
  64. $start_year_cycyle = $arrCyclesValues['YEAR']['start'];
  65. $stop_year_cycyle = $arrCyclesValues['YEAR']['stop'];
  66.  
  67. }


Dla przykładu, jeśli wybiorę w pierwszym polu SELECT cykl "DAY", chciałem aby automatycznie w drugim polu SELECT podstawił się przedział ze zmiennej $start_day_cycyle
Zakładam, że do realizacji będzie potrzebny Jscript.

Z góry dzięki za pomoc.
kapslokk
Potrzebujesz AJAX'a smile.gif

Ewentualnie wcześniej możesz sobie załadować dane do jakiejś tablicy i na takiej podstawie uzupełniać selecty. Jeśli danych będzie mało - nie ma problemu, ale przy większej ilości będzie to duże obciążenie dla przeglądarki.
Zygmuntt
Cytat(kapslokk @ 5.09.2015, 21:39:53 ) *
Potrzebujesz AJAX'a smile.gif

Ewentualnie wcześniej możesz sobie załadować dane do jakiejś tablicy i na takiej podstawie uzupełniać selecty. Jeśli danych będzie mało - nie ma problemu, ale przy większej ilości będzie to duże obciążenie dla przeglądarki.


Możesz podać prosty przykład użycia ?
kapslokk
http://www.w3schools.com/ajax/ajax_example.asp

Druga opcja jest tak prosta, że nie będę dawał przykładu.
Zygmuntt
Cytat(kapslokk @ 5.09.2015, 22:04:49 ) *
http://www.w3schools.com/ajax/ajax_example.asp

Druga opcja jest tak prosta, że nie będę dawał przykładu.


Jak ja to mam pożenić z polami SELECT genrowanymi przez Forms'y Symfony ?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.