24. oktober 2001 - 00:30Der 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()\">
AI bliver først for alvor en del af arbejdet, når teknologien integreres i den måde, vi arbejder på. At have adgang til AI betyder ikke nødvendigvis, at medarbejderne er klar til at bruge den.
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.
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 !
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 ;-)
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 ;-)
...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
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()
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....
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
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:
<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>\';
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 ?
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 ;-)
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
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 !!!!!
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
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
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 !\");
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 ;-)
<?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
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..... !?
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
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.....??
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.