Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Symfony 1.4.
Forum PHP.pl > Forum > PHP
damianooo
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
krowal
Zamiast "multipart/data" powinno być "multipart/form-data". Nie wiem czy to rozwiąże twój problem ale spróbuj.
damianooo
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ć ?
toffiak
Pobieżnie przejrzałem kod i powinno by:

  1. ...
  2. if ($request->isMethod('post')) {
  3. ...
damianooo
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


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.