begin process at 2012 05 29 13:09:11
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

CSS

 > 

Général

 > 

Page de chargement après un formulaire


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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">&nbsp;&nbsp;Credit Card</p>
<p><input type="radio" name="payment_option" value="paypal">&nbsp;&nbsp;PayPal</p>
<p><input type="radio" name="payment_option" value="daopay">&nbsp;&nbsp;Phone Payment with DaoPay<br>&nbsp;&nbsp;&nbsp;(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

Membre Club

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

Bul3

Membre Club


_ pas de onclick sur un submit
_ pas de formulaire.submit en javascript
_ pas de <a> avec <button> et autre
pour votre cas en plus.

déjà, respectez la manière normale de faire !!!
( comme dans mon exemple )
on pourra causer après si nécessaire.


mercredi 19 août 2009 à 17:17:39 | Re : Page de chargement après un formulaire

cubitus79

_ pas de onclick sur un submit ---> y en a pas c'est une solution que j'avais testé.
_ pas de formulaire.submit en javascript ---> Je ne comprends pas.
_ pas de <a> avec <button> et autre --->le <a> est juste une ancre qui appelle une étiquette. mais je l'ai enlevé pour pas faire de problème.


Pour ce qui est de l'exemple que tu m'a donné, je vois pas pourquoi je retournerai une valeur... Le script Suite() permet juste d'afficher la div cachée donc logiquement aucune valeur a retourner.
C'est pas de la mauvaise volonté, juste je comprend pas ce que j'en ferais.

Concernant le contrôle de saisie j'utilise déjà un test plus complet.

Merci pour tes réponses!

mercredi 19 août 2009 à 19:03:29 | Re : Page de chargement après un formulaire

Bul3

Membre Club


>>y en a pas
euh... pas sur ce qu'on voit !

>>Je ne comprends pas.
parfois, au lieu d'utiliser le bouton submit
certains utilise l'instruction formulaire.submit()
en javascript ( ce qui fait un comportement
un peu différent )

>>>le <a> est juste une ancre qui appelle une étiquette
ah non, c'est un lien
ça a une action ( recharger la page par exemple )

>>mais je l'ai enlevé
pas sur ce qu'on voit

>>Concernant le contrôle de saisie
>>j'utilise déjà un test plus complet.
vous ne faites pas le contrôle lors
de la soumission du formulaire ?
onsubmit est normalement fait pour cela
si la fonction appelée
retourne false, le formulaire n'est pas envoyé
sinon il l'est quand elle retourne true
d'ou le <form ... onsubmit="return(fonction);" ...

pouvez vous nous mettre l'extrait
de où vous en êtes actuellement ?

fonction script qui affiche le .gif
<form
<submit
<image gif
</form>
et mon foie, rien d'autre n'est nécessaire
pour tester ( vous comme moi ) et voir si
tout est correct... 5/6 lignes quoi.

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

Bul3

Membre Club

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

Membre Club

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

Bul3

Membre Club

j'eusse préféré que ce soit vous qui
nous mettiez ce que vous aviez fait!
on aurait corrigé.
là, en postant un exemple, pas sûr que ce soit
la meilleure façon de vous rendre service et
que vous appreniez/reteniez.


1 2

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


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales