🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.javascript
1 messages
1 total messages Started by Leszek Zur Fri, 17 May 2013 20:17
Uruchamianie JS po wczytaniu zipa
#51298
Author: 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
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads