Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony]Przekazanie wartości formularza bez przeładowania strony
Zygmuntt
post 5.09.2015, 20:31:48
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 5.09.2015

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


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.

Ten post edytował Zygmuntt 5.09.2015, 20:32:54
Go to the top of the page
+Quote Post
kapslokk
post 5.09.2015, 20:39:53
Post #2





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

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


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.

Ten post edytował kapslokk 5.09.2015, 20:41:00
Go to the top of the page
+Quote Post
Zygmuntt
post 5.09.2015, 20:54:13
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 5.09.2015

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


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 ?
Go to the top of the page
+Quote Post
kapslokk
post 5.09.2015, 21:04:49
Post #4





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

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


http://www.w3schools.com/ajax/ajax_example.asp

Druga opcja jest tak prosta, że nie będę dawał przykładu.
Go to the top of the page
+Quote Post
Zygmuntt
post 5.09.2015, 22:16:51
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 5.09.2015

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


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 ?
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: 10.06.2024 - 14:29