Accueil > Forum > > > > Page de chargement après un formulaire
Page de chargement après un formulaire
mercredi 19 août 2009 à 14:12:33 |
Page de chargement après un formulaire

cubitus79
|
Bonjour,
J'ai actuellement des problème pour mettre en place une animation de chargement a la suite de mon formulaire.
J'explique mieux: j'ai un formulaire qui est divisé en 3 page (par des div) avec des boutons submit faisant appelle a du javascript pour passer d'une a l'autre. A la dernière page il un bouton submit qui valide le formulaire et charge les données récoltés dans la base de donnée.
Là ou mon problème intervient, c'est que je veux faire une page de loading pour faire attendre pendant le chargement des données.
Pour l'instant je suis parti sur créer un événement sur mon submit de fin qui fait apparaitre une balise cachée avec un fond semi-transparent et un gif animé.
J'ai essayé pas mal de chose comme placé un onclick sur mon submit de fin pour faire apparaitre ma div. Seulement avec cette solution ma div se met en place nickel mais dès que l'envoi de données commence, ma div disparait. Je pense que le problème est qu'il lance la première action et qu'une fois faite, il exécute l'autre en squizzant la première.
J'ai aussi essayé un onsubmit sur mon formulaire mais il exécute juste mon script sur une nouvelle page sans exécuter mon submit.
J'ai enfin essayer une balise <A HREF="javascript:fonction()"> sur mon bouton submit. (bricolage oui je sais! ^^) Ça a eu comme résultat de me charger mon script nickel mais pas d'éxécuter le submit.
Je sais pas si mon explication est bien clair donc je joins du code, j'ai fais au mieux... ^^
Merci d'avance!
Partie du code Javascript
Code Javascript : <script language="JavaScript">
var currentLayer = 'page1';
function showLayer(lyr){
hideLayer(currentLayer);
document.getElementById(lyr).style.visibility = 'visible';
currentLayer = lyr;
}
function Suite(lien){
var objet = document.getElementById('load'); // entre les deux ' tu mes le nom du div que tu veux faire apparaître !
if(objet.style.display == "none" || !objet.style.display){
objet.innerHTML = "<div class='load' id='load2' style='width: 600px;'></div><div class='load2' style='width: 600px;'><br><br><br><br><br><br><br><br><br><br><center><img src='/images/Loading.png'></center></div>";
objet.style.display = "block";
objet.style.overflow = "hidden";
lien.innerHTML = "<input type='submit' value='Submit' id=''>";
var hFinal = 600; //Hauteur finale (la hauteur une fois que ça aura fini de déplier !)
var hActuel = 0; //Hauteur initiale (la hauteur dès le début !)
var timer;
var fct = function ()
{
hActuel += 20; //Augmente la hauteur de 20px (tu peux modifier) tous les 40ms !
objet.style.height = hActuel + 'px';
if( hActuel > hFinal)
{
clearInterval(timer); //Arrête le timer
objet.style.overflow = 'inherit';
}
};
fct();
timer = setInterval(fct,40); //Toute les 40 ms
}else if(objet.style.display == "block"){
var hFinal = 0; //Hauteur finale (la hauteur une fois que ça aura fini de déplier !)
var hActuel = 680; //Hauteur initiale (la hauteur dès le début !)
var timer;
var fct = function ()
{
hActuel -= 20; //Augmente la hauteur de -20px (tu peux modifier) tous les 40ms !
objet.style.height = hActuel + 'px';
if( hActuel < hFinal)
{
clearInterval(timer); //Arrête le timer
objet.style.overflow = 'inherit';
objet.style.display = "none";
}
};
fct();
timer = setInterval(fct,40); //Toute les 40 ms
lien.innerHTML = "+";
}
}
</script>
parti du Body: j'utilise smarthy sur mon site.
Code HTML : <form name="myform" ENCTYPE="multipart/form-data" action="index.php" method="post">
<div id="page1" class="page" style="visibility:visible;">
<label id="#" name="#">
<div class="content_left">
<p><label class="tlabel" for="make">Make*</label>
{ if $mmake eq ''}
<select name="make">
<OPTION Value="">Select Make</OPTION>
<option value="Other">Other </option>
<option value="Alfa Romeo">Alfa Romeo </option>
<option value="Audi ">Audi </option>
<option value="Bentley ">Bentley </option>
<option value="BMW ">BMW </option>
</select>
{else}
<textarea name='make' Value='$mmake' readonly>
{/if}
</p>
</div>
<p><CENTER><a href="#"><input type="button" id="C1" value="Continue" onClick="return validate_form_1 ( );"></a></CENTER></p>
</div>
<div id="page2" class="page">
<label id="#" name="#">
<div class="content_fullwidth">
<p><B>Add Photographs:</B></p>
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
</div>
<div class="content_left">
<p><label class="tlabel" for="image1">Image 1</label> <input id="file1" name="file1" type="file">
<p><label class="tlabel" for="image2">Image 2</label> <input id="file2" name="file2" type="file">
<p><label class="tlabel" for="image3">Image 3</label> <input id="file3" name="file3" type="file">
</div>
<div class="content_fullwidth">
<p><B>Additional Selling Points:</B></p>
<p><textarea name="additional" cols="65" rows="3" class="my_textarea"></textarea></p>
</div>
<div class="content_fullwidth">
<CENTER><a href="#"><input type="button" id="B1" value="Go Back" onClick="showLayer('page1')"><input type="button" id="C2" value="Continue" onClick="showLayer('page3')"></a></CENTER>
</div>
</div>
<div id="page3" class="page" name="page3">
<label id="#" name="#">
<div id="load" style="display: none; width: 0px;"></div>
<div class="content_fullwidth2">
<div class="content_right">
<b>Choose Payment Option:</b>
{if $USER_LEVEL < 3}
<p><input type="radio" name="payment_option" "checked" value="realex"> Credit Card</p>
<p><input type="radio" name="payment_option" value="paypal"> PayPal</p>
<p><input type="radio" name="payment_option" value="daopay"> Phone Payment with DaoPay<br> (SMS or Phone Call)</p>
{else}
<p>No payment required</b>
{/if}
</div>
<div class="content_fullwidth">
<input type="hidden" name="action" value = "add_auction">
<input type="hidden" name="MAX_FILE_SIZE" value="50000">
<p><CENTER><a href="#"><input type="button" id="B3" value="Go Back" onClick="showLayer('page2')"><input type="submit" value="Submit" id="submit"></a></CENTER></p>
<div id="load" style="display: none; width: 0px;"></div>
</div>
</div>
</div>
</form>
|
|
mercredi 19 août 2009 à 15:34:18 |
Re : Page de chargement après un formulaire

Bul3
|
Bonjour,
dans votre <a> qui contient le submit
il y a aussi un button ???
je ne sais pas comment on peut s'y retrouver
la "manière normale"
Code HTML : function trait()
{ contrôler la saisie
si erreur : return false;
sinon, faire apparaître le .gif
return true;
}
<form onsubmit=return(trait());".....>
....
<input type="submit" />
</form>
Cordialement [ mon Site] [ M'écrire] Bul 
|
|
mercredi 19 août 2009 à 16:30:07 |
Re : Page de chargement après un formulaire

cubitus79
|
La balise <a> n'est là que pour remonter au début de la page après soumission.
Oui je suis d'accord c'est le fouilli c'est pas clair, et je m'en excuse!
Pour ce qui est du script java pas de problème il marche. Il sert a afficher une div progressivement. j'ai tester avec le return mais dans ma fonction je n'ai rien a retourner.
La solution pour l'instant qui était la plus proche de ce que je recherche c'est celle ci:
Code HTML : <input onclick="Suite(this)" type="submit" value="Submit" id="submit">
Seulement comme j'avais expliqué le script java juste terminé il disparait au profit de l'envoie de données... ce qui est bête pour une page de chargement de disparaitre avant le chargement! 
|
|
mercredi 19 août 2009 à 16:47:02 |
Re : Page de chargement après un formulaire
|
mercredi 19 août 2009 à 17:17:39 |
Re : Page de chargement après un formulaire
|
mercredi 19 août 2009 à 19:03:29 |
Re : Page de chargement après un formulaire
|
jeudi 20 août 2009 à 08:48:33 |
Re : Page de chargement après un formulaire

Bul3
|
pas décidé ???
alors ch'tiot exemple !!!! ( faut l'faire !!! )
t1.htm :
Code HTML : <body>
<script type="text/javascript">
function trt(frm)
{ if ( frm.nv.value.length==0 )
{ alert("à remplir");
return false;
}
else { frm.im.style.display="inline";
return true;
}
}
</script>
<form action="t1.php" method="post"
onsubmit="trt(this);">
<input type="text" name="nv" />
<img src="t1.gif" name="im" style="display:none;" />
<input type="submit" />
</form>
</body>
t1.php (avec sleep pour voir ) :
Code PHP : <?php
sleep(5);
echo date('h:i:s') . "\n";
?>
et tout baigne !

|
|
jeudi 20 août 2009 à 08:51:13 |
Re : Page de chargement après un formulaire

Bul3
|
bien sur il fallait lire :
<form action="t1.php" method="post"
onsubmit="return (trt(this));">

|
|
jeudi 20 août 2009 à 12:21:20 |
Re : Page de chargement après un formulaire

cubitus79
|
Merci beaucoup!
J'essaye et je te dis ça!

|
|
jeudi 20 août 2009 à 12:46:01 |
Re : Page de chargement après un formulaire
|
Cette discussion est classée dans : style, objet, var, hauteur, if
Répondre à ce message
Sujets en rapport avec ce message
comment afficher d'autres ligne en cliquant sur un lien [ par gregou9 ]
je vous explique le probleme:j'ai un tableau dans lequel jaffiche un lien selon differents criteres et quand je clique sur ce lien il m'affiche differ
Variables PHP dans JS [ par Dyx50 ]
Bonjour,Alors voila depuis 2 jours je me casse la tête à propos de ma question. J'explique mon problème :J'ai un espace membre ou le membre peut ajout
IE8 > drag qui agrandit la zone affichable pourtant en overflow hidden [ par neiimad ]
Bonjour. Ma zone affichable s'agrandit sous IE8 lorsque je tente de déplacer mon élément hors de celle ci, malgré l'overflow hidden. Je n'ai pourtan
2 menuS deroulants java dans une page [ par DEVLYNE ]
Bonjour!Sachez que je suis uns très grande débutante mais j'ai un petit souci.J'utilise un logiciel gratuit: Coffee Cup DHTML menu pour faire mes menu
Enregistrer drag n drop [ par tales ]
Bonjour,Je voudrais savoir comment enregistrer la position de mes images aprés un drag n drop.Que lorsque je réaffiche ma page mes images soient là oû
Une ame charitable pour arrander un script [ par balous001 ]
bonjour a tous et a toutes !Je sollicite votre aide pour arranger un script defectueux.Je m'explique:Je vient de crée un forum chez l'hebergeur forum
script que j'aimerai modifier [ par betsie ]
Bonjour Voilà, j'ai ce script pour une horloge analogique, mais j'aimerai pourvoir le modifier pour qu'elle soit légèrement plus à gauche et légèremen
Objet.style.top me retourne 0 [ par tibob51 ]
Bonjour,Je suis débutant en java (je galère pas mal même), et sur ce morceaux de code je n'arrive pas a comprendre pourquoi ma ariable posi est égale
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|