Avatar billede rzj Nybegynder
24. oktober 2001 - 00:30 Der er 34 kommentarer og
1 løsning

lukke vindue ?

Ok - sikkert en klassiker, men jeg gider ikke \"Try/Error\" metoden nu ;-)
Jeg ønsker flg. til at virke (prikker er irelevant indhold)
<......... onClick=\"waitWin = window.open(\'wait.php\', \'...\')\">
Idé:
--> ved klik åbnes et vindue samtidigt er det en submit knap til et File Upload.
--> Der kan gå lidt tid før siden med \"UPLOAD ER SUCCES\" vises.
-->derfor popper wait.php vinduet op ved onClick().
Frustration:
Når update.php kommer frem i \"gammelt\" vindue skal waitWin-vinduet lukkes:
--><body onLoad=\"java script:waitWin.close()\">

Spørgsmål:
HVORFOR VIRKER DET IKKE ??

jeg får beskeden waitWin undefined ?

Avatar billede nikolajdu Nybegynder
24. oktober 2001 - 00:33 #1
Når du reloader siden nulstiller du jo den variabel du lige havde lavet med waitWin = ....

/Nikolaj
Avatar billede etrebla Nybegynder
24. oktober 2001 - 00:33 #2
new waitwin=window.open(...  ??
Avatar billede etrebla Nybegynder
24. oktober 2001 - 00:35 #3
aah, nikolaj, så må det være <body onunload=\"java script:waitwin.close()\"> i \"gammelt\" vindue?
Avatar billede nikolajdu Nybegynder
24. oktober 2001 - 00:37 #4
Nja så let er det heller ikke. Den skal vel kun lukke hvis upload == \"succes\" - Så kan vi jo ikke lukke vinduet med onunload - Det skal jo refreshes først.
Avatar billede rzj Nybegynder
24. oktober 2001 - 00:44 #5
jah, det er ikke helt nemt. Jeg ønsker ej en onunload() funktion. Uanset hvad, SKAL upload.php (som også kan generere eksempelvis fejlmeddelser) lukke et helt bestemt vindue--> nemlig wait.php (waitWin vinduet) ;-) når upload.php LOADES !
Avatar billede olebole Juniormester
24. oktober 2001 - 09:11 #6
<ole>
Flyt window.open()-kaldet til aller øverst i upload.php og luk det igen aller nederst:

<?
print \'<script language=\"JavaScript\">var waitWin= window.open(...bla bla bla...);</script>\';

.... EN HEL MASSE PHP ....
.... EN HEL MASSE PHP ....
.... EN HEL MASSE PHP ....

print \'<script language=\"JavaScript\">waitWin.close();</script>\';
?>

/mvh
</bole>
Avatar billede rzj Nybegynder
24. oktober 2001 - 11:23 #7
olebole-->den går ikke ! upload.php bliver jo først eksekveret når filen ER uploadet  og så er det jo lidt sent med en \"Vent venligst...Upload igang\" besked. Upload.php skal derfor lukke \"Vent venligst\"-vinduet når upload.php loades. IKKE når opener vinduet Unloades, da der så også vil være en popup når dette vindue forlades uanset om man har uploadet noget eller ej ;-)
Avatar billede olebole Juniormester
24. oktober 2001 - 11:27 #8
Jamen, så skift dog til upload.php noget før og lad denne fil håndtere din upload-funktion...hvor svært kan det være?  :)
/mvh
Avatar billede bamzen Nybegynder
26. oktober 2001 - 11:29 #9
prøv at tjekke http://www.1000chairs.com da jeg mener der at have lavet den funktion du ønsker ,, if so go grab it ;)
Avatar billede rzj Nybegynder
26. oktober 2001 - 22:18 #10
bamzen--> det er stadig det samme problem ! Jeg ønsker at åbne et vindue fra en *.html-fil og lukke det når en anden *html-fil er loadet. På det link du angiver åbnes filen af samme *.html-fil som åbner vinduet.....og det er let nok at lave ;-)
Avatar billede olebole Juniormester
26. oktober 2001 - 23:22 #11
Jeg kan kun se én løsning:
Den side, hvor din <input type=\"file\"> ligger, laver du til et frameset:

<frameset rows=\"100%,*\">
  <frame src=\"file_upload.html\">
  <frame name=\"engine\" src=\"open_script.html\">
</frameset>

...så kalder du din window.open() - som ligger i open_script.html i den skjulte frame - med parent.engine.åbne_funktion().
Så kan du på onload af upload.php lukke vinduet og evt. sige: top.location=self.location
/mvh
Avatar billede bamzen Nybegynder
27. oktober 2001 - 13:03 #12
rzj > så kig på http://www.horseindex.com klik på flagene oppe i vestre hjørne........

Den har funktionen til at åbne i en side..... når man så submitter sit valg i det popoup vindnue der fremkommer, vil denne (altså popup viduet) få en ny url med som sætter en ny sti i hovedvinduet, samt laver en self.close()

Enjoy

/Martin
Avatar billede rzj Nybegynder
27. oktober 2001 - 13:07 #13
bamzen > forkert URL ?? ;-)
Avatar billede bamzen Nybegynder
27. oktober 2001 - 13:17 #14
Damn, endnu en dot.com der er gået på røven, eller også er der bare en server fejl
Avatar billede bamzen Nybegynder
27. oktober 2001 - 13:22 #15
jeg vil lige sidde og fedte lidt, og se om jeg ikke kan genskabe hvad jeg allerede har lavet.......

giv mig lige 20 min eller deromkring
Avatar billede rzj Nybegynder
27. oktober 2001 - 13:26 #16
tak for din ihærdighed ! Hvis det lykkedes med JavaScript er det ok ! Det eneste jeg egentligt ønsker er en \"Wait please\" besked mens der uploades. Eftersom filerne kan være rimeligt store er det vigtigt, da det ikke er lige intuitivt for alle hvorfor deres Browser vindue står og \"tænker\" ;-) A la funktionen på Windows Update, hvor den henter oplysninger fra puterens OS....
Avatar billede olebole Juniormester
27. oktober 2001 - 14:36 #17
Jeg fatter stadig ikke problemet. Når du trykker på \'Upload\' knappen - hvilken fil tager sig så af selve fil-upload\'en ...er det ikke \'upload.php\'?
/mvh
Avatar billede bamzen Nybegynder
27. oktober 2001 - 14:45 #18
Ole, lad mig prøve at forklare problemstillingen, så kan rzj altid rette mig hvis jeg tager fejl......

Du har et vindue med en formular til filupload
Lad os sige du vil uploade en fil på 10mb, det vil tage noget tid.......

Mens dit orignal vindue arbejder på livet løs,, vil du gerne at der åbnes et nyt vindue........ et vindue med en vent venligst tekst......

Når det originale vindue så skifter url, (altså filen er uploaded), skal den nye fil i orginal vinduet lukke ventevinduet..


rzj, har du overvejet bare at have et lag i din side, og så skrive det i det lag.....så vil den automatisk forsvinde når siden skifter???

Var det en løsning du kunne bruge?

Alternativt, tror jeg efter at have leget lidt med det, at du er nødt til at lave en checker i ventevinduet der chekker på url\'en i originalvinduet

Avatar billede olebole Juniormester
27. oktober 2001 - 15:01 #19
Nå ja, men så har jeg jo svaret  :)
Altså - vi har en HTML-fil med en fil-upload-knap i. Den kalder \'upload.php\' i hovedvinduet og popper \'wait.php\' op i et vindue.

Det, der sker i den situation er, at \'upload.php\' med det samme indlæses i hovedvinduet. Den ser sikkert sådan ud:

--------------------------------
<?
...en php-upload-funktion...
?>

<html>
....en hel masse html, der siger at upload var en succes - eller gik galt....
</html>
--------------------------------

Den fil bliver loaded med det samme i hovedvinduet - men bliver først synlig, når php\'en er afviklet og vi kommer til HTML\'en, da filen afvikles kronologisk. Derfor er den måde, man plejer at lave den slags på, at skrive:

--------------------------------
<?
print \'<script language=\"JavaScript\">var waitWin= window.open(...bla bla bla...);</script>\';

...en php-upload-funktion...

print \'<script language=\"JavaScript\">waitWin.close();</script>\';
?>

<html>
....en hel masse html...
</html>
--------------------------------

Det vil fungere perfekt. popUp\'en bliver åbnet lige inden, uploaden påbegyndes og lukkes lige efter.
/mvh
Avatar billede olebole Juniormester
27. oktober 2001 - 15:02 #20
Der burde have stået:
\"popUp\'en bliver åbnet lige inden, uploaden påbegyndes og lukkes lige efter, den er afsluttet.\"
Avatar billede rzj Nybegynder
27. oktober 2001 - 15:06 #21
olebole > joh, men det ændre ikke på det faktum at upload.php først vises (og åbenbart også kaldes) når filen ER uploadet. <input type=\"file\"> virker åbenbart på den måde ! ;-> sådan virker det ihvertfald. Jeg HAR selvfølgeligt prøvet at lade upload.php åbne et vindue, men dette vindue vises først når filen ER uploadet - forstår du det nu ?
Avatar billede bamzen Nybegynder
27. oktober 2001 - 15:07 #22
Jeg må indrømme at jeg går i hvertfald forgæves overfor dit problem, vil anbefale at du skriver vent venligt i et lag istedet for i et nyt vindue...... så kan jeg godt i hvertfald ;-)
Avatar billede rzj Nybegynder
27. oktober 2001 - 15:07 #23
olebole > havde ikke set bamzen\'s svar, shit det går stærkt.....:-)
bamzen > tak for forklaringen - pyha den er svær ;-)
Avatar billede bamzen Nybegynder
27. oktober 2001 - 15:12 #24
Er det ikke meningen dette her, at det skal gå stærkt????

Btw ole, har du mod på min udfordring omkring træ menu fra i går?
Avatar billede olebole Juniormester
27. oktober 2001 - 15:12 #25
Du har ikke prøvet mit eksempel, så ville du ikke skrive sådan. Test vores svar af, inden du opgiver en løsning - ellers er det jo ligemeget, hvad vi kommer med af løsninger.
Den eneste grund til, du tror \'upload.php\' først vises, når filen er uploaded er, at der ikke er noget HTML at vise før afviklingen af uploaden er færdig.
Det er muligt, du ikke forstår det - men det er kun fordi, du ikke har testet det.
/mvh
Avatar billede rzj Nybegynder
27. oktober 2001 - 15:25 #26
olebole > hvad snakker du om !! Selvfølgeligt har jeg testet det - og det virker ikke ! Hvis du har så svært ved at se hvorfor dit svar ikke virker foreslår jeg at du laver en upload.php ! Hvor tydeligt skal jeg skrive det : UPLOAD.PHP BLIVER FØRST KALDT NÅR FILEN ER UPLOADET !!!!!
Avatar billede rzj Nybegynder
27. oktober 2001 - 15:26 #27
bamzen > jeg acceptere dit svar ang. et layer det er helt klart en løsning og måske endda en bedre løsning ;-)
Avatar billede bamzen Nybegynder
27. oktober 2001 - 15:28 #28
Jamen så takker jeg da for point....... selvom jeg er nu rimeligt sikker på at ham ole sikkert også har ret, men at det kommer meget an på server/sprog i hvilken rækkefølge tingene bliver udført
Avatar billede olebole Juniormester
27. oktober 2001 - 15:58 #29
rzj >> Jeg vil forslå dig, du læser lidt mere om, hvordan PHP - og ikke mindst HTTP-upload - virker.
Hvis \'upload.php\' er den fil, der tager sig af upload, bliver den loaded i browseren, når du kalder den. Hvor troede du den lå, mens den uploadede ........i min browser?  :)
Det bliver ikke bedre af, du bruger \'Caps Lock\' ...det får dig ikke til at blive mere overbevisende. Du har med statsgaranti ikke lavet det, som jeg viste - eller også laver du en anden fejl.
Jeg sidder netop i et firma og laver et meget stort CMS i avanceret DHTML/JS - med en backend i PHP. Jeg ved godt, hvad jeg skriver  =o)
Dit problem er et standard problem - og løsningen, jeg anviste virker for et utal af andre programmører/kodere, så du må gøre et eller andet helt galt.
/mvh
Avatar billede rzj Nybegynder
27. oktober 2001 - 16:33 #30
olebole > Ok, da - det kan jo være du kan forklare det til mig så: (jeg skal nok smide 30 point, hvis det altså lykkes, hvilket jeg stadig tvivler på :-)
jeg har opbygget dettee standard upload-script:
<?php
/*
Sørger for at uploade en fil.
af Rasmus Jørgensen d. 23.10.01
mod. 24.10.01
*/
//Errorhandling collects messages and output errors to client
require(\"errorhandling.php\");
require(\"info_on_client.php\");
//Info on user (info_on_client.php)
get_ip();

//DISTINCT PARAMETERS TO BE PERSONALIZED
$dest = \"/net/users/a37/699/basewebdk/phpupload/\".$file_name; //destinationslib on server
$formats = array(\'jpg\'); //array containing valid filetypes

$succes_message =
\"<html><head><title>Fil-upload</title></head><body>
<h1>SUCCES !</h1>Din fil er uploadet og vil blive gennemset.<br>
Herefter vil den blive lagt i galleriet.<br><br>
<a href=\\\"galleri.php\\\">Gå tilbage til galleriet</a>
</body>
</html>\";

$mail = 1; //Mail to  webmaster and/or user on uploadsucces (1:true, 0:false)
$email_to = \"rzj@get2net.dk\"; //Email of recipient
$email_from = \"rasmus@baseweb.dk\"; //Email of sender
$subject = \"Fridas Sider | UPLOAD\";
$content = \"
BRUGERUPLOAD
***************
Fil:     $file_name
IP:     $IP
HOST:    $host
***************
Autogenerated from $DOCUMENT_ROOT
\";

//KEEP HANDS OF !

//If no file has been submitted
if($file==\"none\"){
    error(\"Ingen filangivelse !\");
}

//If file has zero size
if($file_size==0){
    error(\"Filen har ingen indhold !\");
   
}

//Possible Crackattack
if(!is_uploaded_file($file)){
    error(\"Muligt \'crackattack\' fra uploadet fil !\");
   
}

//Filetype not valid
if(!in_array(strtolower(substr($file_name,-3)),$formats)) {
    //$error_msg = \"Wrong filetype!\".substr($file_name, -3);
    error(\"Wrong filetype!\".substr($file_name, -3));
}

//Failed to copy file on server or greenlight for \"go\"
if(!copy($file, $dest)) {
    error(\"Unable to create $dest - check permissions<br>\\n\");
}


if($mail == 1){
    mail(\"$email_to\",\"$subject\",
    \"$content\",
    \"From: $email_from\\nReply-to: $email_from\");
}

echo $succes_message;
?>

Scriptet skal være rimeligt globalt - altså kunne bruges i alle mulige forskellige sammenhænge.

som du kan se output\'er jeg en succes-message. langt nede i scriptet. Det er først her <html> starter.
Hvor er det lige præcist at jeg skal indsætte JavaScript ? Vel at mærke UDEN at ændre i opbygningen af scriptet ;-)
Avatar billede olebole Juniormester
27. oktober 2001 - 16:39 #31
F.eks:

<?php
print \'<script language=\"JavaScript\">var waitWin= window.open(...bla bla bla...);</script>\';
/*
Sørger for at uploade en fil.
af Rasmus Jørgensen d. 23.10.01
mod. 24.10.01

...og:

echo $succes_message;
print \'<script language=\"JavaScript\">waitWin.close();</script>\';
?>

...og pyt med points  ;o)
/mvh
Avatar billede rzj Nybegynder
27. oktober 2001 - 16:51 #32
ole > Nu har jeg rettet til flg:
<?php
echo \"<script language=\'JavaScript\'>
    var waitWin = window.open(\'wait.php\', \'waitWin\', \'\');
    </script>\";

***her er script som vist før****

echo \"<script language=\'JavaScript\'>
        waitWin.close();</script>\"
?>
Jeg er virkeligt ked af det olebole, men det virker altså ikke ;-( Har det ikke nogen betydning af JavaScript står udenfor <html></html> tag\'s - det burde det..... !?
Avatar billede olebole Juniormester
27. oktober 2001 - 17:15 #33
Nej, det betyder - ganske som forventet - intet  ;o)
Hvis du ikke får åbnet et vindue nu, må jeg tillade mig at spørge, om der overhovedet er installeret PHP på serveren - for det *skal* ske!
Hvad er problemet i dit forsøg på at implementere min løsning? Åbning eller lukning?
/mvh
Avatar billede rzj Nybegynder
28. oktober 2001 - 12:09 #34
olebole > Jeg forstår dig altså ikke helt ? Output\'et fra et PHP script bliver jo ikke vist sekvientielt ! Ovenstående PHP udskriver først JavaScript, dernæst php og så lidt HTML og tilsidst noget JavaScript igen, men alt dette bliver jo først sendt til klienten når Upload proceduren ER udført !
Det er først når HELE PHP-filen er kørt at der bliver sendt et output til klienten.
Så jeg forstår ikke rigtigt hvor du vil hen med den metode.....??
Avatar billede olebole Juniormester
29. oktober 2001 - 04:08 #35
Jeg giver op ...jeg har ingen problemer med det!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester