Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1235 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Problème de validation automatique de forumlaire avec Opera [RESOLU]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de validation automatique de forumlaire avec Opera [RESOLU]

n°1369001
benjones
Posté le 17-05-2006 à 17:07:39  profilanswer
 

Bonjour à tous ;)
 
Voila, dans le but de gérer un planning de manière graphique, je passe les dates dans un tableau javascript.
Afin d'envoyer mes dates vers le serveur pour ke php puisse enregistrer tout ça, j'ai donc écrit une fonction javascript qui écrit dynamiquement un formulaire et place autant de balise input de type hidden que de valeurs à récupérer :
 
function prepareEnvoi(url, numsalar, choix)
{
    document.write("<html><body><p align='center'>Validation en cours, veuillez patienter...</p>" );
    // Création du formulaire
    document.write("<form id='validform' name='validform' action='"+url+"' method='post'>" );
    // On passe le numéro du salarié
    document.write("<input type='hidden' name='numsalar' value='"+numsalar+"'>" );
    // On passe le choix
    document.write("<input type='hidden' name='choix' value='"+choix+"'>" );
"
ICI MA BOULCE NON AFFICHEE VOLONTAIREMENT
 
    // On ferme le formulaire
    document.write("</form></body></html>" );
    // On envoie le formulaire
    document.getElementById("validform" ).submit();
}
 
Rien à dire à propos de la fonction et de la récupération de données, tout fonctionne parfaitement. Le problème que je rencontre se produit uniquement sous Opera. En effet, mon formualire n'est pas soumis, il reste planté sur la page "Validation en cours, veuillez patienter...".
 
J'ai essayé la méthode utilisé ici : "document.getElementById("validform" ).submit();" mais également "document.forms.validform.submit();" mais rien y fait... Opera serait il succeptible ou est-ce moi qui programme comme un bourrin ? :lol:

Message cité 1 fois
Message édité par benjones le 18-05-2006 à 11:28:53
mood
Publicité
Posté le 17-05-2006 à 17:07:39  profilanswer
 

n°1369023
anapajari
s/travail/glanding on hfr/gs;
Posté le 17-05-2006 à 17:23:53  profilanswer
 

benjones a écrit :

est-ce moi qui programme comme un bourrin ? :lol:


oui c'est vraiment pas beau ce que tu fais :o
 
Je ne comprends pas pourquoi ta page ne contient pas le formulaire dès le départ? Quel est l'interêt de le créer ainsi?
Il est peu surprenant que certains browsers n'acceptent pas la validation du formulaire issu de cette "chose"...
 
Perso je ferais comme ça:

  • page html qui contient le formulaire et les inputs hidden toujours présents
  • via une boucle, ajout des inputs hidden dans le form. Et là je me servirais plutôt du dom
  • soumission du formulaire une fois tout ça fini


 

n°1369035
benjones
Posté le 17-05-2006 à 17:33:15  profilanswer
 

anapajari a écrit :

oui c'est vraiment pas beau ce que tu fais :o
 
Je ne comprends pas pourquoi ta page ne contient pas le formulaire dès le départ? Quel est l'interêt de le créer ainsi?
Il est peu surprenant que certains browsers n'acceptent pas la validation du formulaire issu de cette "chose"...


 
L'interêt, c'est que c'est la seule solution que j'ai envisagé, car au moment de la génération de la page, on ne sais pas à l'avance combien de congés vont être saisis. Sinon, en effet, j'aurai fait comme tu proposes.
 
1*PHP me génère une page.
2*Un utilisateur saisi des congés, autant qu'il veux, qui sont sauvegardés dans un tableau
3*il clique sur valider, c'est à ce moment là qu'il faut feinter pour envoyer chaque ligne du tableau au serveur, la seule que j'ai trouvé c'est de générer un formulaire par Javascript qui contient autant de input hidden que de ligne du tableau...
 
j'espère que tu comprends mieu mon problème et pourquoi j'ai effectuer cette gymnastique, qui, je l'avoue, n'est pas très belle... :lol:

n°1369335
benjones
Posté le 18-05-2006 à 09:07:09  profilanswer
 

Je n'arrive toujours pas a faire fonctionner cela sous Opéra, mais ça fonctionne avec tous les autres navigateurs que je posède (IE, Netscape, Firefox...) qui sont peut être plus indulgents aux codes barbares :p
 
Si quelqu'un a une aitre idée que la méthode que j'ai employée pour envoyer des données aux serveur, ne vous génez pas ;) Je pense qu'il y a des méthodes plus propres, pour l'instant je n'ai rien trouvé d'autres, alors je suis ouvert à toutes critiques et/ou idées.
 
Merci beaucoup !!

n°1369355
benjones
Posté le 18-05-2006 à 09:34:20  profilanswer
 

Ah, oui, j'avais oublié, la console Javascript d'Opéra me renvoie cette erreur :
Could not convert undefined or null to object

n°1369369
anapajari
s/travail/glanding on hfr/gs;
Posté le 18-05-2006 à 09:54:17  profilanswer
 

t'as gardé le même code bouseux ou pas?

n°1369385
benjones
Posté le 18-05-2006 à 10:08:22  profilanswer
 

oui à peu près :
 
    document.write('<p align=\'center\'>Validation en cours, veuillez patienter...</p>');
    // Création du formulaire
    document.write('<form id="validform" action="'+url+'" method="post">');
    // On passe le numéro du salarié
    document.write('<input type="hidden" name="numsalar" value="'+numsalar+'">');
    // On passe le choix
    document.write('<input type="hidden" name="choix" value="'+choix+'">');
    var nblignes = Conges.length;
    var chaine = "";
    var temp = new Array();
    var x=0;
    var colorconge="";
    for(var i=0; i<nblignes; i++)
    {
       temp = new Array();
       temp = Conges[i];
       nbtemp = temp.length;
       colorconge = colorConge(temp[0]);
       for(x=0; x<nbtemp; x++)
       {
         chaine = chaine+temp[x]+"|";
       }
       chaine = chaine+colorconge;
       document.write('<input type="hidden" name="'+(i+1)+'" value="'+chaine+'">');
       chaine="";
    }
    // On ferme le formulaire
    document.write('</form>');
    // On envoie le formulaire
    document.write('<p align=\'center\'><a href="javascript:document.getElementById(\'validform\').submit();">Cliquez ici si rien ne se passe au delà de 10 secondes</a></p>');
    // Validation automatique
    setTimeout("document.getElementById('validform').submit();",2500);

n°1369394
benjones
Posté le 18-05-2006 à 10:14:17  profilanswer
 

Curieusement :
 
<a href="javascript:document.getElementById(\'validform\').submit();">Cliquez ici si rien ne se passe au delà de 10 secondes</a> Fonctionne mais pas :
 
document.getElementById('validform').submit(); tout seul...

n°1369399
Hermes le ​Messager
Breton Quiétiste
Posté le 18-05-2006 à 10:18:24  profilanswer
 

Oh des document.write en 2006 :o

n°1369407
benjones
Posté le 18-05-2006 à 10:24:45  profilanswer
 

Hermes le Messager a écrit :

Oh des document.write en 2006 :o


 
Hihi, désolé je ne connais pas d'autres fonctions en Javascript pour écrire à l'écran. Laquelle me conseilles tu ?
 
Merci beaucoup ;)

mood
Publicité
Posté le 18-05-2006 à 10:24:45  profilanswer
 

n°1369409
Hermes le ​Messager
Breton Quiétiste
Posté le 18-05-2006 à 10:27:41  profilanswer
 
n°1369411
benjones
Posté le 18-05-2006 à 10:29:41  profilanswer
 

Ah, je la connais et l'ai déja utilisée pour modifier le contenus de divs flottants, autant pour moi !
 
Merci Hermes le  Messager !

n°1369412
anapajari
s/travail/glanding on hfr/gs;
Posté le 18-05-2006 à 10:29:49  profilanswer
 


so WEB1.0 :o
 
Du dom plutot(comme je le disais plus haut): createNode et createTextNode, entre autre.

n°1369456
benjones
Posté le 18-05-2006 à 11:08:29  profilanswer
 

anapajari a écrit :

so WEB1.0 :o
 
Du dom plutot(comme je le disais plus haut): createNode et createTextNode, entre autre.


 
Je ne connais pas du tout, pourrais-tu développer un peu la dessus ?
Merci beaucoup ;)

n°1369460
anapajari
s/travail/glanding on hfr/gs;
Posté le 18-05-2006 à 11:11:23  profilanswer
 
n°1369471
benjones
Posté le 18-05-2006 à 11:20:35  profilanswer
 

Merci beaucoup pour le lien, je vais regardé ça, sinon avec innerHTML, j'ai réussi ça fonctionne impec sur IE, Firefox, Netscape et OPERA !!
 
Je vais laisser comme ça je pense, à moins que j'arrive à maitriser le DOM.
 
Merci encore !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Problème de validation automatique de forumlaire avec Opera [RESOLU]

 

Sujets relatifs
Probleme de session et tableauProblème de librairie .a
[RESOLU] Recuperer des variables avec la commande exec()Problème de Serialization
Problème avec MsgBoxconversion hexa ascii pour écrire dans un fichier [RESOLU]
probleme de lecture/ecriture dans un fichier excel[Résolu]appel de Macro OpenOffice avec API UNO ????
[pas résolu] sélection texte interfère avec déplacement calqueApplet java, archive jar -> probleme Worng name :(
Plus de sujets relatifs à : Problème de validation automatique de forumlaire avec Opera [RESOLU]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR