Toon posts:

[JAVASCRIPT] showdialog en form posten

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb iets raars.

ik heb dit :

<Script>
function test(fileName,height,width){
vars="center:yes;status:no;resizable:yes";

if(height){
vars=vars + ";dialogHeight:"+height+"px";
} else {
vars=vars + ";dialogHeight:250px";
}

if(width){
vars=vars + ";dialogWidth:"+width+"px";
} else {
vars=vars + ";dialogWidth:600px";
}

window.showModalDialog(fileName,window,vars)
}

</script>

en ik roep een ander html bestand aan met test("test.hp");

nu wordt die test.htm goed geopened. In die test.php zit een form :

<form enctype='multipart/form-data' action='' method='post' name='frmUploadPicture' >

<input type='hidden' name='action' value='uploadImage'>
<input type="hidden" name="MAX_FILE_SIZE" value="204800">
<input name="userfile" type="file">
<input type="submit" value="Upload" class='button'>
</form>


Nu kies ik dus gewoon een bestand en druk op "Upload". Nu wordt test.php aangeroepen , maar dan in een nieuw venster ( ????? ). Ik wil juist dat die test.php zich in dezelfde venster aanroept.

Heeft iemand hier ervaring mee ?

[ Voor 35% gewijzigd door Verwijderd op 30-04-2003 21:14 ]


  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 22-08 23:00
Je wilt dat als iemand een plaatje upload dit direct wordt getoond in een venster dat zich aanpast aan de grootte van het geuploade bestand?

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:24

crisp

Devver

Pixelated

Verwijderd schreef op 30 April 2003 @ 21:13:

Heeft iemand hier ervaring mee ?
Nee, ik gebruik meestal gewone popup windows. Het grote voordeel daarvan is namelijk dat die het ook in andere browsers dan IE goed doen ;)

Intentionally left blank


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

crisp schreef op 30 April 2003 @ 22:25:
[...]

Nee, ik gebruik meestal gewone popup windows. Het grote voordeel daarvan is namelijk dat die het ook in andere browsers dan IE goed doen ;)
modalDialogs hebben behoorlijke voordelen. Zo zijn ze 'modal' (doh!) en kun je dus niks doen in andere vensters terwijl de dialog actief is. Ook kun je het scherm een returnValue meegeven, wat erg handig is. Ook heb je geen contextmenu voor de pagina.. je kunt er dus een echt applicatievenster van maken.

Zeker voor een CMS bijvoorbeeld of ander complexer systeem (waar IE-only functie niet weg te denken zijn en je dus meestal met deze eis zit) zijn dit soort vensters bijna niet weg te denken (Het is vaak niet de bedoeling dat mensen dingen in het hoofdvenster gaan zitten kutten terwijl je daar net een popup voor een wijziging oid hebt geopend).

Het is erg jammer dat een Mozilla nog niet zoiets dergelijks ondersteunt imho.. en de hele browser maar zeer beperkt geschikt is voor het maken van een gebruiksvriendelijk CMS. IE is veel meer gericht op applicatie-ontwikkeling.

---
Maar wat betreft dit voorbeeld: Hier is het nogal onzinnig ;) Bovendien heet je functie test(...), wat een gereserveerde naam is ;)

Verder moet je weten dat je een modalDialog geen gewoon venster is. Je kunt hierin niet nieuwe pagina's openen bijvoorbeeld. Hier is wel een workaround voor: gebruik een frameset in de modalDialog, en je bent van deze beperking verlost.

[ Voor 34% gewijzigd door Bosmonster op 30-04-2003 23:35 ]


Verwijderd

Topicstarter
hmm zal die met die frameset proberen ;-)

Verwijderd

modelDialog's hebben ook problemen. Ze zijn bedoeld om client-side only te werken. Dus:
  • Dialog openen met parameters
  • De gebruiker z'n ding laten doen
  • Dialog sluiten, en parameters teruggeven
De problemen die ik ben tegengekomen:
  • Caching gedrag is anders (hij cachet agressiever, maar daar valt omheen te komen)
  • Als je een dynamisch bestand opent met een dialog, krijgt de gebruiker geen feedback over de voortgang (je ziet niet aan IE dat 'ie bezig is)
  • Een formulier submitten/link openen gebeurt altijd in een nieuw venster (tenzij je het formulier in een frameset hangt, maar dan kun je weer last krijgen van timing-problemen, die je weer met een setTimeout op kunt lossen)
  • Als je een formulier submit of een link opent vanuit zo'n dialog, raak je ook je Cookie kwijt. Bij ASP ben je dus je sessie kwijt, en in PHP zul je net zoiets hebben.
  • Als je op een gegeven moment moet porten naar Mozilla, kost het je erg veel werk om dit voorelkaar te krijgen.
Laatste lijst ;) mijn aanbevelingen:
  • Gebruik als URL voor zo'n dialog alleen statische HTML (ivm caching een geen feedback)
  • Doe alleen client-side dingen op het formulier (zoals beschreven in eerste lijst)
  • Bedenk dat je soortgelijk gedrag ook voor elkaar kunt krijgen door een DIV te gebruiken, en de rest van het document disabled.
  • Stop het openen/verwerking van returnValue in een functie, zodat je hem gemakkelijk om kan bouwen naar de hierboven beschreven DIV (extra niveau van indirectie)
Maar om een onnodige discussie te voorkomen: modalDialogs kunnen inderdaad zeer bruikbaar zijn, maar gebruik ze niet als een modale versie van het gewone window...
Pagina: 1