Gå til innhold

Loading... -funksjon mens scriptet kjøres


Anbefalte innlegg

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

Lenke til kommentar
Videoannonse
Annonse

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.

Lenke til kommentar

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å.

Endret av sven-o
Lenke til kommentar
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?

Lenke til kommentar

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:

Lenke til kommentar
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! :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...