Jump to content
Sign in to follow this  
azidG

Loading... -funksjon mens scriptet kjøres

Recommended Posts

Jeg holder på å lage et upload-script, hvor folk kan laste opp filer til serveren min. I den forbindelse lurte jeg på om det er mulig å fikse et script som viser en melding mens upload-scriptet kjøres. Dette kunne være kjekt, særlig når filene har litt størrelse og det tar tid å laste opp.

 

F. eks. brukeren trykker Send, og det spretter opp et lite vindu som viser teksten "Filen lastes nå opp, vennligst vent...". Når scriptet har kjørt ferdig så forsvinner dette vinduet (om mulig).

 

Da hindrer man også at utidige brukere avbryter før fila er ferdig lasta opp, fordi de tror det har skjedd noe feil.

 

På forhånd takk!

 

-AzidG

Share this post


Link to post

Det beste vil være å skrive en tekst ved siden av knappen - problemet er at de fleste browsere sender deg ikke videre til siden før filene er lastet opp, så du kan ikke bruke PHP til dette. JavaScript eller Java er to bra løsninger til dette, men merk at ikke alle kan kjøre dette.

Share this post


Link to post

OK, noen som har peiling på JavaScript som kunne være så generøse å snekre sammen et eksempel?

 

Kan ikke så mye JavaScript at jeg klarer det selv fra scratch...

Share this post


Link to post

Kanskje noe slik(benytter frames):

1. Du har en frame med skjemaet, hovedvinduet liksom.

2. Du har en gjemt frame som er target for skjemaet.

3. Et javascript kjøres ved submit. Dette skriptet laster en side til hoved-framen(som viser en "vennligst vent" melding), før den sender skjemaet i den skjulte framen.

4. Når filen er ferdig lastet opp, oppdateres kjøres et javascript som laster en ny side i hoved-framen.

 

Dette skal fungere greit. Det er ikke så vanskelig å bruke javascript til å laste forskjellige frames.

 

 

Edit: Om jeg skal snekre et eksempel, må det bli en annen gang(i morra eller no). Har ikke tid nå.

Edited by sven-o

Share this post


Link to post
Kanskje noe slik(benytter frames):

1. Du har en frame med skjemaet, hovedvinduet liksom.

2. Du har en gjemt frame som er target for skjemaet.

3. Et javascript kjøres ved submit. Dette skriptet laster en side til hoved-framen(som viser en "vennligst vent" melding), før den sender skjemaet i den skjulte framen.

4. Når filen er ferdig lastet opp, oppdateres kjøres et javascript som laster en ny side i hoved-framen.

 

Dette skal fungere greit. Det er ikke så vanskelig å bruke javascript til å laste forskjellige frames.

Godt forslag, men jeg har lite lyst til å bruke frames.

 

Noen andre?

Share this post


Link to post

Dette ordner biffen uten frames:

 

 

I form-taggen legger du til en onsubmit(<form onsubmit="vennligst_vent()" ...>) som kaller denne funksjonen:

<script language="javascript">
function vennligst_vent(){
window.open('vennligst_vent.html', 'meldingsvindu', 'height=500,width=300,toolbar=no,menubar=no,scrollbars=no,resizable=yes,location=no,directories=no,status=no');
}
</script>

 

I upload-scriptet må så ha en test som sjekker om form-et er lastet:(Er ikke vits å lukke et vindu som ikke er åpnet...)

if(!empty($_POST['et_feltnavn'])){?>
<script language="javascript">
whandle = window.open('about:blank', 'meldingsvindu', 'height=1,width=1,toolbar=no,menubar=no,scrollbars=no,resizable=yes,location=no,directories=no,status=no');
whandle.close();
</script>
<?}?>

 

Dette vil skje:

- Idet form-et submittes åpner et vindu med en html-fil(vennligst_vent.html).

- Når upload-scriptet er ferdig med å laste opp filen vil det skrive ut et javascript som åpner (og overskriver) det forrige vinduet, og lukker det umiddelbart. En bruker vil kun oppleve dette som at vinduet lukkes.

 

See? :thumbup:

Share this post


Link to post
Dette ordner biffen uten frames:

 

 

I form-taggen legger du til en onsubmit(<form onsubmit="vennligst_vent()" ...>) som kaller denne funksjonen:

<script language="javascript">
function vennligst_vent(){
window.open('vennligst_vent.html', 'meldingsvindu', 'height=500,width=300,toolbar=no,menubar=no,scrollbars=no,resizable=yes,location=no,directories=no,status=no');
}
</script>

 

I upload-scriptet må så ha en test som sjekker om form-et er lastet:(Er ikke vits å lukke et vindu som ikke er åpnet...)

if(!empty($_POST['et_feltnavn'])){?>
<script language="javascript">
whandle = window.open('about:blank', 'meldingsvindu', 'height=1,width=1,toolbar=no,menubar=no,scrollbars=no,resizable=yes,location=no,directories=no,status=no');
whandle.close();
</script>
<?}?>

 

Dette vil skje:

- Idet form-et submittes åpner et vindu med en html-fil(vennligst_vent.html).

- Når upload-scriptet er ferdig med å laste opp filen vil det skrive ut et javascript som åpner (og overskriver) det forrige vinduet, og lukker det umiddelbart. En bruker vil kun oppleve dette som at vinduet lukkes.

 

See? :thumbup:

Takker! Nøyaktig det jeg var ute etter! :)

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...