Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP]Problem z Chrome, wywołanie skryptu
Forum PHP.pl > Forum > Przedszkole
krzesik
Witam,
mam skrypt który generuje mi pliki pdf. Wszystko pięknie działa pod IE czy też FF, ale problem pojawia się w Chromie.
Przy kliknięciu na przycik "generuj pdf" okno się poprawnie zamyka ale niestety skrypt generatora nie zostaje wywołany. W czym może być problem? Może ktoś się już z tym spotkał?

  1. .......
  2.  
  3. <form name="sprawozdanie" form action="spr_pdf.php" target="_blank" method="GET">
  4. <input type="hidden" name="id_spr" value="<? echo $idspr; ?>" />
  5. <input type="hidden" name="informacja" value="<? echo $informacja; ?>" />
  6. <p><input type="submit" value="Generuj PDF" onclick="self.close()"; /></p><br />
  7.  
  8. .......


Po wielu próbach, stwierdziłem że jeśli z sekcji:
  1. 6.<p><input type="submit" value="Generuj PDF" onclick="self.close()"; /></p><br />

wyrzucę onclick="self.close()"; to pdf się generuje jednak skutkuje to tym, że okno nadal zostaje otwarte... więc połowicznie temat rozwiązany, ale w takim razie jak inaczej zamknąc okno?questionmark.gifquestionmark.gif
blahy
Rozumiem, ze sam otwierasz to okno/popup? Bo inaczej nie moglbys go zamknac w chrome.
Wydaje mi sie ze chrome inaczej obsluguje tutaj kolejnosc - najpierw wywoluje onclick, wtedy juz nie ma co submitowac.

Mozna zrobic tak, ze submit idzie na strone, ktora go obsluguje (nie w nowej karcie) i ona zamyka popup:

  1. <form name="sprawozdanie" id="asd" action="bbb.html" method="GET">
  2. <input type="hidden" name="id_spr" value="asd" />
  3. <input type="hidden" name="informacja" value="asd" />
  4. <p><input type="submit" value="Generuj PDF" /></p><br />
  5. </html>

i
  1. <script type="text/javascript">
  2. self.close()
  3. </body>
  4. </html>


Albo submit formularza ajaxem i w odpowiedzi na niego zamknac okno. To powinno dzialac na kazdej przegladarce.
Pyton_000
Cytat
<form name="sprawozdanie" form action="spr_pdf.php" target="_blank" method="GET">

Wywal to i sprawdź.

I czy masz zamknięty </form> ? Bo tu go nie widać.
freewalker
ewentualnie ustaw:

setTimeout(function(){ self.close(); },2000);

lub skorzystaj z:

  1. <form onsubmit="self.close()">


co powinno najpierw wysłać formularz smile.gif
krzesik
Dziękuję wszystkim za wszelkie porady.
Form mam zamknięty poniżej - więc jest ok.

poradziłem sobie w inny sposób, działa ale nie wiem czy jest poprawny:
  1. .....
  2. <p><input type="submit" value="Generuj PDF" onclick="submit(); window.close();" /></p><br />
  3. .......
b4rt3kk
Najelegantszym rozwiązaniem będzie po prostu umieszczenie wszystkiego w jednym pliku (bez konieczności otwierania nowego okienka i zamykania go). Tyle, że lepiej by było jakbyś zmienił wtedy GET na POST. Czyli:

  1. // na samej górze dokumentu
  2. if ($_SERVER['REQUEST_METHOD'] === 'POST') {
  3. include 'spr_pdf.php';
  4. }
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.