Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> dwa submity -> dwa docelowe pliki php, jeden form - dwa submit - dwa pliki docelowe
pela222
post
Post #1





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 17.04.2013

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


Witam,
proszę o pomoc w rozwiązaniu problemu:
Mam jeden plik form.html z formularzem. Chcę dodać coś co by dało mi taki efekt że po kliknięciu przycisku nr1 formularz jest wysłany do pliku 1.php a po kliknięciu przycisku nr2 do pliku 2.php Oczywiście podany przeze mnie kod nie działa (pewnie nie można zagnieżdżać php wewnątrz <form>).
Przeczytałem na ten moment chyba ok 20 różnych tematów na różnych forach ale nie mogę znaleźć rozwiązania.

  1. $prz1 = $_POST['prz1'];
  2. $prz2 = $_POST['prz2'];

  1. <form action="<?php if(isset($prz1)) {echo "1.php";} elseif(isset($prz2)) {echo "2.php";} ?>" method="post">
  2.  
  3. .....tutaj mój formularz....
  4.  
  5. <input type="submit" value="inter" name="prz1"/>
  6. <input type="submit" value="domestic" name="prz2"/>
  7. </form>


No ale to nie działa niestety!

Jedno co mi działa to:
  1. <form id="form" method="post">
  2. <input type="submit" value="1" onclick="document.getElementById('form').action='test1.php';" >
  3. <input type="submit" value="2" onclick="document.getElementById('form').action='test2.php';" >
  4. </form>


ale niestety po "cofnięciu" sie do formularza jest on pusty a mi zależy żeby dane pozostały!! no bo ja zawsze bede najpierw generował raport nr1 (po kliknięciu przycisku nr1 i bede się cofał żeby wygenerować raport nr2 (po kliknięciu przyciksu nr 2)

Najczęstsze porady zawierają i pewnie to jest coś bardzo blisko tego co potrzebuję ale moja zerowa wiedza sprawia że nie potrafię tego zastosować:
  1. if (isset($_POST['action1']) || isset($_POST['action2'])) {
  2. // handle textarea
  3.  
  4. if (isset($_POST['action1'])) {
  5. header('Location:action1.php');
  6. exit();
  7. }
  8.  
  9. header('Location:action2.php');
  10. exit();
  11. }

  1. <input type="submit" name="action1" value="Action1">
  2. <input type="submit" name="action1" value="Action2">
  3. </form>


Ten post edytował pela222 17.04.2013, 22:39:16
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
morthan
post
Post #2





Grupa: Zarejestrowani
Postów: 50
Pomógł: 4
Dołączył: 15.06.2010

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


Widzisz, coś się nauczyłeś.

  1. <form id="form" method="post">
  2. <input type="submit" value="1" onclick="document.getElementById('form').action='test1.php';" >
  3. <input type="submit" value="2" onclick="document.getElementById('form').action='test2.php';" >
  4. </form>


Formularz leci tam, jaki lin ma wpisany w atrybut action. Jak widzisz możesz to zmienić jsem.

Aby poruszać sie w dwie strony z pamięcią musisz dane zbierać do array i na jej podstawie tworzyć ukryte inputy, z wartościami wybranymi przez uzytkownika. Nie jest to trudne, za to przysłowiowe rzeźbienie w gó..nie. (IMG:style_emoticons/default/wink.gif)
i takie kawałki kodu:
  1. if((int)$array['checkbox_1'] === 1):
  2. echo '<input type="checkbox" name="checkbox_1" value="1" checked="checked">';
  3. else:
  4. echo '<input type="checkbox" name="checkbox_1" value="1" >';
  5. endif;


i ta przez cały formularz.
Dane nie znajdujące się dajesz do input type=hidden name=cośtam, ale dane z tego formularza nie wyswietlasz w ukrytych.

Rozumiesz?
Go to the top of the page
+Quote Post

Posty w temacie


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: 17.10.2025 - 04:32