🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.javascript
Article #51298

Uruchamianie JS po wczytaniu zipa

#51298
From: Leszek Zur
Date: Fri, 17 May 2013 20:17
46 lines
2992 bytes
Jest sobie strona1.php. Na niej formularz zawierający
<form action="strona2.php" target="_blank">
Klient wypełnia formularz i klika na submit.
Dane z formularza dostaje strona2.php, która generuje zapytanie SQL.
Jeśli w wyniku zapytania otrzymuję zero wyników to generuję komunikat w 
html typu "Brak danych". Jeśli jest co najmniej 1 linia wyników to 
generuję plik zip i wysyłam go do przeglądarki

Mam w strona2.php coś takiego:

if(!$ilosclinii) {
	echo "Brak danych";
	exit;
}
header("Content-type: application/zip");
header("Content-disposition: attachment; filename=plik.zip");
i tu generuje zipa i go wysyłam

Użyłem target="_blank" ponieważ dzięki temu jak user dostanie komunikat 
"Brak danych" to strona1.php z formularzem mu nie znika tylko ma 
wszystkie dane, które wypełnił i łatwiej mu je poprawić niż wpisywać od 
początku.
Wszystko działa OK ale postanowiłem coś zmienić. Czasem z zapytania 
dostaję bardzo dużo wyników co mi "zabija" serwer. Postanowiłem dodać 
przykładowo do zapytania SQL warunek "LIMIT 1000". Plik jest dalej 
generowany ale chciałbym aby user dowiedział się, że plik, który dostał 
jest niepełny bo zawiera tylko 1000 wyników a jest ich więcej. Najlepiej 
w formie javascriptowego okienka z komunikatem. Tylko nie wiem jak to 
ładnie zrobić.

Najlepiej gdyby do tego zipa można było w nagłówkach odpowiedzi dodać 
wywołanie odpowiedniego skryptu ale tu nie ma htmla więc pewnie tak nie 
wywołam javascriptu.

Mogę dodać coś takiego:
if($ilosclinii > 1000) {
	echo "Uwaga! wygenerowany wynik został obcięty do 1000 linii. Aby 
pobrać plik kliknij <a href="strona3.php">tutaj</a>;
	exit;
}
i strona3.php oddaje tego zipa. Jest tylko taki problem, ze muszę 
przekazać wynik pomiędzy strona2.php a strona3.php

A może macie jakiś pomysł jak to zrobić lepiej ?

Leszek
Technical Details
Message-ID: <kn639q$h06$1@news.vectranet.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!news.glorb.com!npeer03.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!nx01.iad01.newshosting.com!newshosting.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!news.vectranet.pl!.POSTED!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!news.glorb.com!npeer03.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!nx01.iad01.newshosting.com!newshosting.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!news.vectranet.pl!.POSTED!not-for-mail
From: Leszek Zur <leszek@USUNTO.teczowe.eu.org>
Newsgroups: pl.comp.lang.javascript
Subject: Uruchamianie JS po wczytaniu zipa
Date: Fri, 17 May 2013 22:17:49 +0200
Organization: Vectra - http://www.vectra.pl
Lines: 46
Message-ID: <kn639q$h06$1@news.vectranet.pl>
NNTP-Posting-Host: 078088121201.dzierzoniow.vectranet.pl
Mime-Version: 1.0
X-Trace: news.vectranet.pl 1368821882 17414 78.88.121.201 (17 May 2013 20:18:02 GMT)
X-Complaints-To: usenet@news.vectranet.pl
NNTP-Posting-Date: Fri, 17 May 2013 20:18:02 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:17.0) Gecko/20130509 Thunderbird/17.0.6
X-Received-Bytes: 2771
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit