Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony] Jak wpisać w pole formularza domyślną?
tjaden
post 1.10.2009, 17:04:38
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 1
Dołączył: 18.02.2009

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


Wiem ,że wpisanie w pole formularza wartości domyślnej trudne nie jest, można to zrobić np w bazie danych, ale mi chodzi raczej o sytuację w której, w przypadku gdy użytkownik nie wpisze pole określonej wartości, do bazy trafi wartość domyślna.

Konkretnie chodzi mi o sytuację, gdy wpisując post na forum użytkownik nie wpisze swojego nicka wówczas chcę do bazy przekazać jego IP jako nick.
Go to the top of the page
+Quote Post
MateuszS
post 1.10.2009, 17:21:32
Post #2





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


zaden problem, przykladowo jezeli mamy taki formularz

  1. <form action="index.php" method="POST">
  2. Ulubiony kolor: <input type="text" name="kolor" /><br />
  3. <input type="submit" value="rejestruj" />
  4. </form>


zalozmy wiec zepole ulubiony kolor nie jest wymagane, wtedy latwo w php piszemy warunek

  1. if(empty($_POST['kolor'])) {
  2. $kolor='nie wybrano';
  3. }
  4. //mozemy nie wybierac koloru, po czym wysylamy to do bazy, mozna tak samo zrobic z IP i nickiem.
  5.  


--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post
-=Peter=-
post 1.10.2009, 18:00:00
Post #3





Grupa: Zarejestrowani
Postów: 304
Pomógł: 51
Dołączył: 4.02.2005
Skąd: Kraków

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


Jedno z rozwiązań, które mi się nasuwa, to napisanie specjalnego walidatora, który pełniłby rolę filtra.

Przykładowo:

  1. class myValidatorDefault extends sfValidatorBase{
  2. //ustawiasz w konstruktorze wartość domyślną
  3. private $default;
  4.  
  5. protected function doClean($value){
  6. if(is_null($value) || strlen((string)$value) == 0){
  7. $value = $this->default;
  8. }
  9.  
  10. return $value;
  11. }
  12. }


Do formularza poprzez konstruktor podajesz obiekt requestu (z którego wyciągasz IP) lub sam numer IP, a w configure w formularzu tworzysz ten walidator przekazując numer ip jako parametr domyślny. Może rozwiązanie lekko na około i może taka możliwość jest już obsługiwana w formularzach, ale z symfony nie mam wiele do czynienia przez ostatnie miesiące ;]


--------------------
Go to the top of the page
+Quote Post
Gribo
post 2.10.2009, 22:28:37
Post #4





Grupa: Zarejestrowani
Postów: 237
Pomógł: 17
Dołączył: 1.11.2007
Skąd: Zielona Góra

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


a ja bym nadpisał metode doSave i tam sprawdził sobie czy koles wpisał ten nik podajze jest polecenie $this->getValue('login')==null jeśli prawda to pobieram ip kolesia zapisuje w pole login


--------------------
Wyszukiwarka noclegów w Polsce i zagranicą.
Najlepszy katalog turystyczny wspomagający pozycjonowanie i promocje stron.
Go to the top of the page
+Quote Post
tjaden
post 5.10.2009, 19:48:10
Post #5





Grupa: Zarejestrowani
Postów: 42
Pomógł: 1
Dołączył: 18.02.2009

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


wiem jak sprawdzić wartość pola ( tak jak pisałeś przez getValue() ) i na tym etapie wszystko działa, jednak nie wiem jak zapisać wartość w polu, nie ma takiej funkcji jak setValue(), chyba spróbuję przez walidację jak to ktoś wyżej napisał
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: 27.06.2025 - 10:55