Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony] jak dołączyć formularz na stronę ?
nieraczek
post 6.02.2009, 20:49:27
Post #1





Grupa: Zarejestrowani
Postów: 405
Pomógł: 6
Dołączył: 12.01.2007

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


Jak wyświetlić na stronie formularz, bo pojawia mi się błąd ?

W actions.class.php mam:
  1. <?php
  2. public function executeStronka(sfWebRequest $request)
  3.  {
  4.    $this->form = new FormularzJedenForm();
  5.  }
  6. ?>


W stronkaSuccess.php mam:
  1. <div id="job">
  2.  
  3. Formularz:
  4. <?php
  5. include_partial('lib/form/FormularzJeden')
  6. ?>
  7.  
  8. </div>


Nie bardzo rozumiem funkcji include_partial(), co mam w nią wpisać ? Dołącza ona zawartość pliku, ale jakoś nie do końca rozumiem, bo często ma jeszcze tablice array().


Poza tym mam jeszcze plik FormularzJedenForm.class.php - umieściłem go w katalogu sf_sandbox\lib\form - jest to chyba właściwe miejsce, bo są tu umieszczone formularze automatycznie wygenerowane przez Symfony.
  1. <?php
  2. class FormularzJedenForm extends sfForm
  3. {
  4.  public function configure()
  5.  {
  6.      $this->setWidgets(array(
  7.      'email'   => new sfWidgetFormInput(),
  8.      'message' => new sfWidgetFormTextarea(),
  9.    ));
  10.  
  11.    $this->setValidators(array(
  12.      'email'   => new sfValidatorEmail(),
  13.      'message' => new sfValidatorString(array('max_length' => 255)),
  14.    ));
  15.  
  16.  }
  17. }
  18. ?>
Go to the top of the page
+Quote Post
phpion
post 6.02.2009, 21:12:21
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Dawno nie korzystałem z Symfony ale czy przypadkiem nie wystarczy:
  1. <div id="job">
  2.  
  3. Formularz:
  4. <?= $form ?>
  5.  
  6. </div>
Go to the top of the page
+Quote Post
nieraczek
post 6.02.2009, 21:27:37
Post #3





Grupa: Zarejestrowani
Postów: 405
Pomógł: 6
Dołączył: 12.01.2007

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


No niestety, ale to nie działa. W tutorialu na stronie symfony używają do tego include_partial() - niestety ja jeszcze zbytnio tego nie rozumiem i nie wiem jak to w moim przypadku wykorzystać. tongue.gif

PS. Robię trochę inaczej niż jest w tutorialu.

Ten post edytował nieraczek 6.02.2009, 21:29:30
Go to the top of the page
+Quote Post
destroyerr
post 6.02.2009, 23:26:33
Post #4





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

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


phpion ma rację, tak wystarczy. Oczywiście są inne sposoby wyświetlania formularza.
Twoja próba jest totalnie bezsensowna, jestem ciekawy skąd to wytrzasnąłeś.
include_partial służy do ładowania szablonów, więc stosujesz tą funkcje bezmyślnie. Zajrzyj do książki tam masz opisane do czego to służy. Osobny dział dokumentacji jest poświęcony formularzom. Tam też zajrzyj, warto.

Reszta wydaje się być poprawna, oczywiście to gdzie umieścisz plik z formularze, to w zasadzie dla sf jest obojętne. Na razie trzymaj tam gdzie teraz a z czasem, ale powiem Ci, że jak będzie lib/jakis_fajny_katalog to też będzie dobrze.
Go to the top of the page
+Quote Post
nieraczek
post 7.02.2009, 11:24:52
Post #5





Grupa: Zarejestrowani
Postów: 405
Pomógł: 6
Dołączył: 12.01.2007

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


Znalazłem opis tworzenia i wyświetlania formularza na stronie symfony (w tutorialu tego nie było). Tylko ja chciałbym wstawić formularz na stronę a nie wyświetlać go samego.
W konsoli wydałem polecenie:
php symfony generate:module fronted formularz1

I teraz mam w frontend/modules folder formularz1 a w nim:
actions/actions.class.php:
  1. <?php
  2. class formularz1Actions extends sfActions
  3. {
  4. /**
  5.   * Executes index action
  6.   *
  7.   * @param sfRequest $request A request object
  8.   */
  9.  public function executeIndex(sfWebRequest $request)
  10.  {
  11.    $this->forward('default', 'module');
  12.  }
  13. }
  14. ?>


oraz templates/indexSuccess.php gdzie dodałem to co pisaliście:
  1. <?php echo $form ?>



Natomiast w frontend/modules w folderze job/actions w actions.class.php funkcje:
  1. <?php
  2. public function executeStronka(sfWebRequest $request)
  3.  {
  4.    
  5.  }
  6. ?>


W frontend/modules w folderze job/templates w stronkaSuccess.php mam:
  1. <?php
  2. Formularz:
  3. ?>


i na tej stronie chciałbym wyświetlić formularz formularz1 - jak to zrobić ?
Go to the top of the page
+Quote Post
phpion
post 7.02.2009, 12:14:19
Post #6





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Może zapoznaj się z odpowiednimi materiałami dotyczącymi formularzy:
http://www.symfony-project.org/book/forms/1_2/en/
a nie działaj po omacku.
Go to the top of the page
+Quote Post
nieraczek
post 7.02.2009, 14:25:36
Post #7





Grupa: Zarejestrowani
Postów: 405
Pomógł: 6
Dołączył: 12.01.2007

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


Udało mi się zrobić formularz wg podanej przez Ciebie strony - jednak wyświetla się on na stronie:
http://localhost:81/formularz


A ja chciałbym go na stronie: http://localhost:81/job/formularz

Czy taki formularz da się w ogóle zrobić ręcznie bez użycia konsoli ? Bo mi za każdym razem wyświetla się biała strona zamiast formularza ?

sf_sandbox\apps\frontend\modules\job\actions\action.class.php:
  1. <?php
  2. public function executeFormularz(sfWebRequest $request)
  3.  {
  4.      $this->form = new Formularz2Form();
  5.  }
  6. ?>


sf_sandbox\apps\frontend\modules\job\templates\FormularzSuccess.php:
  1. <?php echo $form ?>


sf_sandbox\lib\form\Formularz2Form.class.php:
  1. <?php
  2. class Formularz2Form extends sfForm
  3. {
  4.  public function configure()
  5.  {
  6.  
  7.  $this->setWidgets(array(
  8.      'email'   => new sfWidgetFormInput(),
  9.      'message' => new sfWidgetFormTextarea(),
  10.    ));
  11.  
  12.    $this->setValidators(array(
  13.      'email'   => new sfValidatorEmail(),
  14.      'message' => new sfValidatorString(array('max_length' => 255)),
  15.    ));
  16.    
  17.  }
  18. }
  19. ?>


I zawsze jak wchodzę na http://localhost:81/job/formularz to widzę białą stronę. Natomiast formularz wykonany przy użyciu konsoli działa na http://localhost:81/formularz.

A jak zakomentuję
  1. <?php
  2. $this->form = new Formularz2Form();
  3. ?>
to widzę na stronie button.

Ten post edytował nieraczek 7.02.2009, 14:29:00
Go to the top of the page
+Quote Post
phpion
post 7.02.2009, 14:32:34
Post #8





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(nieraczek @ 7.02.2009, 16:25:36 ) *
Udało mi się zrobić formularz wg podanej przez Ciebie strony - jednak wyświetla się on na stronie:
http://localhost:81/formularz
A ja chciałbym go na stronie: http://localhost:81/job/formularz

No to może umieść go w kontrolerze Job? Kurde, ja naprawdę nie wiem z czego ty robisz problemy. Brak ci kompletnych podstaw Symfony - weź się porządnie za naukę, a nie skacz od razu po formularzach.
Go to the top of the page
+Quote Post
nieraczek
post 7.02.2009, 15:11:19
Post #9





Grupa: Zarejestrowani
Postów: 405
Pomógł: 6
Dołączył: 12.01.2007

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


No tak - teraz jest ok, dziękuję smile.gif
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: 20.06.2025 - 14:53