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
pela222
post
Post #2





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

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


Ok no to chyba mi się udąło rozwiązać mój problem...dajcie znać co myślicie o tym rozwiązaniu:
Plik nr1 (formularz wyjściowy - form.php)
  1. <?php
  2. ?>
  3. <form action="weryf.php" method="post">
  4. <select name="type">
  5. <option value="single">Single Life</option>
  6. <option value="dual">Dual Life</option>
  7. </select>
  8. <input type="text" name="name1"></td>
  9. <input type="text" name="name2"></td>
  10. <input name="eng" value= "ENG" type="submit">
  11. <input name="pl" value= "PL" type="submit">
  12. </form>


Plik nr2 (weryf.php)

  1. <?php
  2. $_SESSION['name1'] = $_POST['name1'];
  3. $_SESSION['name2'] = $_POST['name2'];
  4. $_SESSION['type'] = $_POST['type'];
  5.  
  6. if ( isset ( $_POST['eng'] ) )
  7. {
  8. header("Location: form1.php");
  9. }
  10. if ( isset ( $_POST['pl'] ) )
  11. {
  12. header("Location: form1pl.php");
  13. }
  14. ?>


Plik nr3 (wyświetla polską lub angielską wersję - form1.php lub form1pl.php) załączam tylko wersję form1.php (ang)

  1. <?php
  2. $name1 = $_SESSION['name1'];
  3. $name2 = $_SESSION['name2'];
  4. $type = $_SESSION['type'];
  5. $price = $_SESSION['price'];
  6.  
  7. Print_r ($_SESSION);
  8. ?>
  9. <form action="form2.php" method="post">
  10. <input type="checkbox" name="check1[]" checked="checked" value="Your name is <?php echo $name1; ?>."> - Your name is <?php echo $name1; ?><br>
  11. <input type="checkbox" name="check1[]" checked="checked" value="Your wife name is <?php echo $name1; ?>."> - Your wife name is <?php echo $name2; ?><br>
  12. <input type="checkbox" name="check1[]" checked="checked" value="Insurance type selected: <?php echo $name1; ?>."> - Insurance type selected: <?php echo $type; ?><br>
  13. <input type="button" value="Back" onClick="history.go(-1);return true;">
  14. <input type="submit" value="Next">
  15. </form>


Jak myślicie czy to jest elegancje rozwiązanie problemu?
Formularz pamięta dane po cofnięciu, wreszczie uzyskałem fukcjonalność przesłania danych do róznych formularzy po wciśnięciu różnych submitów bez wykorzystania javascript (przy korzystaniu z javascript musiałem dla każdego pola definiować cos w stylu:
  1. <input type="text" name="name2" value="<?php echo $_SESSION['name2'] ?>">

aby formularz pamiętał dane.

Czekam na wasze opinię czy dobrze korzystam z sesji...

bardzo dziękuję koledze celbarowicz za pomoc...chodziło mi o coś innego ale mnie świetnie naprowadziłeś..

Ten post edytował pela222 12.06.2013, 00:56:47
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 - 20:58