Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][PHP]dwa submity
jacusek
post
Post #1





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

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


Witam. Stworzyłem formularz z dwoma submitami i mam z związku z tym pytanie czy da się zrobić tak, żeby jeden z submitów otwierał się w nowym oknie, a drugi w tym samym??
Z góry dzięki za odpowiedź
Go to the top of the page
+Quote Post
kipero
post
Post #2





Grupa: Zarejestrowani
Postów: 233
Pomógł: 50
Dołączył: 28.10.2006
Skąd: Radom

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


Musisz się chyba pobawić JavaScriptem(oprogramowanie zdarzenia onsubmit formularza). W czystym HTML tego nie uzyskasz.
Go to the top of the page
+Quote Post
jacusek
post
Post #3





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

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


Dzięki za odpowiedź, ale z tego co wyczytałem powininem mieć dwa osobne pliki obsługujące oba zdarzenia. Mam coś co generuje pdf i zapisuje do bazy i coś go generuje pdf ale tylko jako podgląd wydruku. I pytanie czy przy on submit można to zrobić jednym plikiem.
Go to the top of the page
+Quote Post
gorden
post
Post #4





Grupa: Zarejestrowani
Postów: 486
Pomógł: 101
Dołączył: 27.06.2010

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


a nie możesz zrobić tak, że dwa submity odsyłają do tej samej strony, ale treść strony zależy od tego, który submit został kliknięty? proste rozwiązanie (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
_olo_1984
post
Post #5





Grupa: Zarejestrowani
Postów: 289
Pomógł: 77
Dołączył: 5.08.2006

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


lub dodatkowa opcja w formularzu
Go to the top of the page
+Quote Post
jacusek
post
Post #6





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

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


@gorden tak mam właśnie zrobione. w case switch($_POST['submit']) btw rozwiązanie znalezione gdzieś na tym forum. Ale właśnie z różnych powodów chce żeby jeden submit otwierał wszystko na osobnej karcie przeglądarki, a inny nie otwierał dodatkowej karty. Chodzi o to, ze na dodatkowwej karcie ma być podgląd wydruku, a na tej samej karcie sam wydruk po przyciśnięciu odpowiednich submitów. Próbowałem trochę javy, ale niestety kompletnie się na niej nie znam.
Go to the top of the page
+Quote Post
thek
post
Post #7





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Wcale nie dodatkowa opcja. To jedynie submit z innym name. Robisz detekcję i w momencie przeładowania wykrywasz który kliknięty. Od biedy wystarczy tylko tyle, że kliknięcie w "Save as pdf" dorzuci do normalnego wyniku jeszcze link do utworzonego pliku na serwerze czy coś w tym stylu. Zależy jak bardzo ma to być przyjazne rozwiązanie.
Go to the top of the page
+Quote Post
jacusek
post
Post #8





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

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


Pokaże kod bo nie wiem czy umiem to dobrze wytłumaczyć
  1. <form name="form" id="form" method="post" action="wys_form.php">
  2. --dalsza część formularza
  3. <input type="submit" name="submit" value="Zobacz">
  4. <input type="submit" name="submit" value="Zapisz">
  5. <input type="reset" name="reset" value="Wyczysc">
  6. </form>

I plik obsługujący ten formularz:
  1. <?php
  2. //obługa błędów
  3. switch($_POST['submit']){
  4. case 'Zobacz':
  5. include('podglad.php');
  6. break;
  7. case 'Zapisz':
  8. include('test3.php');
  9. break;
  10. }
  11. ?>

Oba submity generują pdf. z tym, ze chciałem żeby Zobacz otwierał się w nowym oknie, a Zapisz w tym samym. Idealną opcją byłoby przy otwieraniu podglądu komunikat o tym, żeby tego nie drukować - ewentualnie blokada drukowania w momencie takie próby - oczywiście różwnież z jakimś komunikatem.
Plik na sserwerze się nie tworzy bo nie ma takiej potrzeby. To maly serwis, więc wszystko tworzy się w locie.

Ten post edytował jacusek 5.08.2010, 12:41:48
Go to the top of the page
+Quote Post
thomson89
post
Post #9





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

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


Cytat(jacusek @ 5.08.2010, 13:23:20 ) *
Próbowałem trochę javy, ale niestety kompletnie się na niej nie znam.

(IMG:http://forum.php.pl/style_images/kot-kotara.jpg)
Go to the top of the page
+Quote Post
jacusek
post
Post #10





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

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


No dobra, ale to raczej nie pomogło w tym konkretnym problemie
Go to the top of the page
+Quote Post
gorden
post
Post #11





Grupa: Zarejestrowani
Postów: 486
Pomógł: 101
Dołączył: 27.06.2010

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


nie wiem do końca o co Ci chodzi, ale kod, który mógłby pomóc.

  1. <?
  2. if(isset($_POST['submit_ta_karta']) or isset($_POST['submit_nowa_karta'])) {
  3. $xx = $_POST['tekst1'];
  4. echo"Oto tekst: $xx"; exit; }
  5. ?>
  6.  
  7. <form action="yy.php" method="post">
  8. <input type="text" name="tekst1"><br>
  9. <input type="submit" name="submit_ta_karta" value="Wyślij w tej karcie">
  10. <input type="submit" name="submit_nowa_karta" value="Wyślij w nowej karcie" onclick="target=('_blank');">
  11. </form>


pierwszy submit pokaże "Oto tekst: $xx" w aktualnej karcie, a drugi - to samo, tylko że w nowej.
Go to the top of the page
+Quote Post
jacusek
post
Post #12





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

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


Nie do końca o to mo chodziło. Natomiast częściowo pomogło mi to rozwiązanie:

  1. <input type="submit" name="zapisz" value="Zapisz">
  2. <input type="submit" name="zobacz" value="Zobacz" onclick="target=('_blank');">

Częściowo dlatego że teraz obie opcje i zabacz, i zapisz otwierają mi się w nowym oknie.

Ten post edytował jacusek 6.08.2010, 10:02:33
Go to the top of the page
+Quote Post
gorden
post
Post #13





Grupa: Zarejestrowani
Postów: 486
Pomógł: 101
Dołączył: 27.06.2010

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


dwa_submity.php
  1. <?php
  2. if(isset($_POST['zobacz'])) {
  3. $tresc = $_POST['tekst'];
  4. echo"Oto Twója treść:<br>$tresc<br><br><hr><br>"; }
  5.  
  6. if(isset($_POST['zapisz'])) {
  7. $tresc = $_POST['tekst'];
  8. //kod do zapisania
  9. echo"Zapisano...";
  10. exit; }
  11. ?>
  12.  
  13. <form action="dwa_submity.php" method="post">
  14. <input type="text" name="tekst"><br>
  15. <input type="submit" name="zapisz" value="Zapisz">
  16. <input type="submit" name="zobacz" value="Zobacz" onclick="target=('_blank');">
  17. </form>


ten kod mi działa, wszystko się wyświetla jak powinno. w starej karcie submit o nazwie "zapisz", a w nowej - submit "zobacz". oba wyświetlają podaną treść w warunkach. nie wiem, czemu Ci nie działa. spróbuj zrobić to na podstawie mojego kodu, lub go przerobić.

Ten post edytował gorden 6.08.2010, 11:04:19
Go to the top of the page
+Quote Post
jacusek
post
Post #14





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

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


Niestety u mnie nie działa (IMG:style_emoticons/default/sad.gif) . Na różnych przeglądarkach niestety (IMG:style_emoticons/default/sad.gif) . ale jeszcze powalczę i może spróbuję zrobić od początku (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
gorden
post
Post #15





Grupa: Zarejestrowani
Postów: 486
Pomógł: 101
Dołączył: 27.06.2010

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


Co tu robić od początku? (IMG:style_emoticons/default/blinksmiley.gif) skopiuj podany kod, wklej i uruchom. Wpisz jakiś tekst i kliknij w któryś button.. Spróbuj najpierw bez przerabiania. U mnie czy formularz w oddzielnym pliku, czy w jednym, oba działają.
Go to the top of the page
+Quote Post
jacusek
post
Post #16





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

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


Widzisz problem polega na obsłudze błędów, która sprawdza czy jest wypełniony formularz. Bez obsługi, która jest przecież konieczna rzeczywiście działa i to jest dla mnie zagadka.

//edit
No i pojawia się inny problem. Bo niby obsługa problemów działa, ale jeżeli chociaż raz użyję przycisku zobacz - wówczas przeglądarka z jakieś nieznanego mi powodu przy kaźźdym następnym przycisku zapisz otwiera mi w nowym oknie. Kiedy odświeżę stronę z formularzem to wszystko jest OK.

//edit2
Niestety błąd jest we wszystkich przeglądarkach jest taki sam. Więc błąd tkwi gdzieś w skrypcie

Ten post edytował jacusek 6.08.2010, 12:47:27
Go to the top of the page
+Quote Post
gorden
post
Post #17





Grupa: Zarejestrowani
Postów: 486
Pomógł: 101
Dołączył: 27.06.2010

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


Dziwne.. kiedy kliknę zobacz, po czym zapisz, button zapisz otwiera się w nowej karcie, dopóki nie odświeżymy strony.. Zawsze możesz w ostateczności zrobić w nowej karcie, bez problemu.
Nie wiem jak rozwiązać ten problem, wybacz..

Ten post edytował gorden 6.08.2010, 12:51:02
Go to the top of the page
+Quote Post
jacusek
post
Post #18





Grupa: Zarejestrowani
Postów: 262
Pomógł: 3
Dołączył: 18.10.2009
Skąd: Łódź

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


no właśnie dziwne. Nie bardzo mogę zrobić to w nowej karcie to wtedy dane z formularza zawsze będą znajdowały się na pierwsze stronie i może to powodować że będą dwa razy do bazy wprowadzane. A to już kompletnie bez sensu
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: 25.08.2025 - 09:23