Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Symfony 1.4., validacja formularza na stronie
damianooo
post
Post #1





Grupa: Zarejestrowani
Postów: 496
Pomógł: 2
Dołączył: 15.07.2011
Skąd: Katowice

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


Witam,
Mam następujący problem:
Chcę validować formularz w ten sposób że po kliknięciu na SUBMIT ma nastąpić Validacja i zapisanie z komunikatem dokładnie na tej stronie na której mam otwarty formularz w edycji .
Mam zrobione tak:

w akcji :

  1. public function executeIndex(sfWebRequest $request) {
  2.  
  3. $this->books = BookTable::getInstance()->findById(3);
  4. $this->book = array();
  5. foreach ($this->books as $bok) {
  6. $this->bok[] = new BookFormCreator($bok);
  7. }
  8.  
  9. if ($request->getMethod('POST')) {
  10. $bookList = BookTable::getInstance()->findOneById($request->getPostParameter('book[id]'));
  11. $this->form = new BookFormCreator($bookList);
  12. $this->form->bind($request->getParameter('book'), $request->getFiles('magazine'));
  13.  
  14. if ($this->form->isValid()) {
  15. $bookList = $this->form->save();
  16.  
  17. $this->getUser()->setFlash('notice', sprintf('Book data have been changed'));
  18. $this->redirect('book/index');
  19. }
  20. }
  21. }


natomiast w Widoku tak:

  1. <?php foreach ($book as $b): ?>
  2.  
  3. <form action="<?php echo url_for('book/index'); ?>" method="POST" enctype="multipart/data">
  4. <tr>
  5. <input type="hidden" name="book[id]" id="book_id" />
  6. <td colspan="10">
  7. <?php echo image_tag('/images/'.$b['thumbnail']->getValue().'') ?><br /><br />
  8. <?php echo 'cos tam cos tam' ?><?php echo $m['name'] ?>
  9. </td>
  10.  
  11. <td colspan="2">
  12. <input type="file" name="" value="<?php echo $b['fot']->getValue(); ?>" /><br /><br />
  13. <a onclick="confirmation()" href="<?php echo url_for('@delete_book?id=') ?>" class="message-delete_book">Delete</a>
  14. </td>
  15.  
  16. <td colspan="2">
  17. <?php echo 'data1 ' ?><?php echo $b['data1'] ?><br /><br />
  18. <?php echo 'data2 ' ?><?php echo $b['data2'] ?><br /><br />
  19. <?php echo 'data3' ?><?php echo $b['data3'] ?>
  20. </td>
  21.  
  22. <td colspan="2">
  23. <?php echo 'data4' ?><?php echo $b['data4] ?><br /><br />
  24. <?php echo 'data5 ' ?><?php echo $b['data5'] ?><br /><br />
  25. <?php echo $b['email'] ?>
  26. </td>
  27.  
  28. <td colspan="2">
  29. <a onclick="confirmation()" href="" class="message-redirect">Pages</a>
  30. </td>
  31.  
  32. <td colspan="2">
  33. <input type="submit" value="Save" id="save" name="save"/>
  34. </td>
  35. </tr>
  36.  
  37. </table>
  38. </form>
  39. <?php endforeach; ?>



Jak daję SAVE to dostaję informacje że żadne dane nie zostały przesłane ... po prostu tablica POST jest pusta .

Mogę prosić o podpowiedź co robiię nie tak ?

dzieki
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
krowal
post
Post #2





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

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


Zamiast "multipart/data" powinno być "multipart/form-data". Nie wiem czy to rozwiąże twój problem ale spróbuj.


--------------------
Nawet świnka może wejść na drzewo kiedy jest chwalona :)
Go to the top of the page
+Quote Post
damianooo
post
Post #3





Grupa: Zarejestrowani
Postów: 496
Pomógł: 2
Dołączył: 15.07.2011
Skąd: Katowice

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


dzięki za uwagę ale to nie to ... bez formularza do uploadowania próbowałem i dalej nic ...

problem jest w przesyłaniu danych ... nie wiem co jest nie tak że nie chce przesłać POSTem danych z tej samej strony na której jest ... nie zapamiętuje tych danych ...


pleas ... wie ktoś jak to zrobić ?


Ten post edytował damianooo 18.09.2012, 07:44:39
Go to the top of the page
+Quote Post
toffiak
post
Post #4





Grupa: Zarejestrowani
Postów: 395
Pomógł: 80
Dołączył: 24.08.2009

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


Pobieżnie przejrzałem kod i powinno by:

  1. ...
  2. if ($request->isMethod('post')) {
  3. ...


--------------------
Go to the top of the page
+Quote Post
damianooo
post
Post #5





Grupa: Zarejestrowani
Postów: 496
Pomógł: 2
Dołączył: 15.07.2011
Skąd: Katowice

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


tak zauważyłem i poprawiłem , ale to nie to sad.gif ...

mam jeszcze jedna literowe tutaj:

  1. $this->form->bind($request->getParameter('book'), $request->getFiles('magazine'));


powinno byc:

  1. $this->form->bind($request->getParameter('book'), $request->getFiles('book'));




nie wiem co w Symfony powinienem ustawić i gdzie aby validowal na tej stronie na ktorej jestem. Jak zrobie osobna akcje np. Save i osobny widok Save i przekieruje z formularza ( czyli z index) na nią to dziala validacja, ale wtedy jestem juz w innym widoku a nie o to mi chodzi .. chcialbym aby calosc odbywala sie w tym samym miesjcu


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 Aktualny czas: 22.08.2025 - 04:09