Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ZF]Dwa razy "post" w jednej akcji
d_hrabia
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 7.01.2011

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


Witam,
otóż mam takie pytanie - czy istnieje możliwość odebrania dwa razy różnych danych metodą post? A mianowicie...
Mam akcję poprawneAction(), w której pobieram poprzednio przesłane dane, a nastepnie te dane wyświetlam w widoku, w którym to należy je potwierdzić porzez submit button, a następnie chcę te dane wrzućić np. do bazy. Czy da się to rozwiązać w jednej akcji?

Akcja:
  1. public function poprawneAction()
  2. {
  3. $formData = $this->_request->getPost();
  4. $this->form->isValid($formData);
  5. $this->view->dane = $this->form->getValues();
  6. if ($this->_request->isPost()) // tutaj bym chciał odebrać przycisk potwierdzenia
  7. {
  8. // tutaj wrzucić dane np do bazy
  9. }
  10. }


Widok:
  1. <div>
  2. <?php // Wypisuję dane
  3. ?>
  4. <form action="<?php echo $this->url(array('action'=>'poprawne')); ?>" method="post">
  5. <div>
  6. <input type="submit" name="" value="Potwierdź" />
  7. </div>
  8. </form>
  9. </div>


Ten post edytował d_hrabia 9.01.2011, 03:28:15
Go to the top of the page
+Quote Post
zend
post
Post #2





Grupa: Zarejestrowani
Postów: 580
Pomógł: 85
Dołączył: 25.03.2010
Skąd: Skrzyszów :)

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


Najlepiej by było stworzyć dwie akcje, a żeby działało tak jak chcesz musisz dorzucić dodatkowe pole do formularza, które będzie mówić, czy to jest drugi request do tej samej akcji

Kod
if($this -> getRequest() -> isPost())
        {
            if($this -> _getParam('doubleSubmited' , false))
            {
                //zapis do bazy
            }
            
            $this -> view -> doubleSubmited = true;
        }


To dorzuć do formularza
  1. <input type="hidden" name="doubleSubmited" value="1" />
Go to the top of the page
+Quote Post
krowal
post
Post #3





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

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


Wystarczy dać dwa pola submit z innym parametrem name i potem sprawdzić które zostało przesłane postem. Inny sposób to zapisanie przesłanych danych z pierwszego formularza w sesji a po potwierdzeniu zapisanie ich w bazie, bo po co je jeszcze raz przesyłać.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 20:31