Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]przesyłanie danych w formularzu symfony
Forum PHP.pl > Forum > Przedszkole
jakis_login
Witam
Mam problem z przesyłaniem formularza. Mianowicie utworzyłem sobie moduł contact a w nim actions.class.php:
  1. class contactActions extends sfActions
  2. {
  3. public function executeIndex()
  4. {
  5. $this->form = new ContactForm();
  6. }
  7.  
  8. public function executeSubmit($request)
  9. {
  10. $this->forward404Unless($request->isMethod('post'));
  11.  
  12. $params = array(
  13. 'imie' => $request->getParameter('imie'),
  14. 'nazwisko' => $request->getParameter('nazwisko'),
  15. 'message' => $request->getParameter('message')
  16. );
  17. $this->redirect('contact/thankyou?'.http_build_query($params));
  18. }
  19. public function executeThankyou()
  20. {
  21. }
  22. }


Oraz w templates plik indexSuccess.php
  1. <form action="<?php echo url_for('contact/submit') ?>" method="POST">
  2. <table>
  3. <?php echo $form ?>
  4. <tr>
  5. <td colspan="2">
  6. <input type="submit" value="Wyslij >> "/>
  7. </td>
  8. </tr>
  9. </table>
  10. </form>


I thankyouSuccess.php
  1. <ul>
  2. <li>Imie: <?php echo $sf_params->get('imie'); ?></li>
  3. <li>Nazwisko: <?php echo $sf_params->get('nazwisko') ?></li>
  4. <li>Message: <?php echo $sf_params->get('message'); ?></li>
  5. </ul>



I w lib/form/ContactForm.class.php
  1. class ContactForm extends sfForm
  2. {
  3. public function configure()
  4. {
  5. $this->setWidgets(array(
  6. 'imie' => new sfWidgetFormInput(),
  7. 'nazwisko' => new sfWidgetFormInput(),
  8. 'message' => new sfWidgetFormTextarea(),
  9. ));
  10. }
  11. }


Po wypełnieniu pól formularza dostaję w odpowiedzi tylko imie a nazwiska I message już nie. Nie wiem co jest grane. A w pasku adresu mam coś takiego:
frontend_dev.php/contact/thankyou/imie/jan/amp%3Bnazwisko/kowalski/amp%3Bmessage/jaka%C5%9B+wiadomo%C5%9B%C4%87

skąd się wzięło to: amp%3B
dlaczego wszystko jest w pasku adresu skoro przesyłam postem?
dlaczego nie widzę wpisanego w pole nazwiska oraz wiadomości?
Bardzo proszę o pomoc.
Evinek
$this->redirect('contact/thankyou?'.http_build_query($params));
To służy raczej do przekierowania na dany link więc dlatego masz to w GET.

Nie znam się do końca na Symfony, ale spróbuj wyświetlić te dane w executeSubmit.
Albo zapisz do sesji informacje, przekieruj na prawidłowy link (contact/thankyou), tam to wyświetl z sesji i wtedy usuń te dane aby więcej się nie plątały po stronie.
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.