IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Un seul submit pour r�gner sur tous les formulaires


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    46
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 46
    Par d�faut Un seul submit pour r�gner sur tous les formulaires
    Bonjour,

    Je d�veloppe un site en php mais ce que je cherche � faire y trouve ses limites...

    En effet, j'ai un �norme formulaire sur un backoffice qui doit permettre de rentrer des informations sur des produits ainsi que l'image associ�e � chaque produit.
    Mon probl�me r�side dans le fait d'avoir un aper�u des images en temps r�el avant ou apr�s upload.

    Avant l'upload: pas possible semblerait-il (du moins sous Firefox, dommage)
    Apr�s upload, oui mais cela n�cessite un submit pour cause de s�curit� (re-dommage).

    J'ai donc un �norme formulaire de donn�es ainsi que de plus petits pointant vers leur iframe respective de mani�re � pouvoir faire un submit sur chaque image � importer et pouvoir les voir directement sans pour autant devoir rafraichir la page g�n�rale, ce qui me permet de garder les donn�es d�j� entr�es dans le grand formulaire de donn�es.

    Tout va bien sauf une chose: pas moyen d'�viter que les formulaires d'images ne se trouvent � l'int�rieur du grand formulaire or des formulaires imbriqu�s ne fonctionnent pas (c'est ce que j'ai v�rifi� et qui semble confirm� par une recherche google �tendue)...

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <form 1>
       INPUT données
       <form a>
            INPUT image1
            INPUT submit
       </form a>
       INPUT données
       <form b>
            INPUT image2
            INPUT submit
       </form b>
       INPUT données
     
       INPUT submit des données uniquement
    </form 1>


    Ma derni�re id�e a donc �t� de "partitionner" le grand formulaire en plus petits, de la sorte:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <form 1>INPUT données</form 1>
    <form a>
         INPUT image1
         INPUT submit
    </form a>
    <form 2>INPUT données</form 2>
    <form b>
         INPUT image2
         INPUT submit
    </form b>
    <form 3>INPUT données</form 3>
     
    <form>INPUT  submit (form1,form2, form3)</form>
    Cette solution est �l�gante mais php ne la permet pas et ne connaissant pas le javascript, j'ai trouv� un code qui permet de faire un submit pour envoyer diff�rents formulaires sp�cifiques:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <SCRIPT LANGUAGE="JavaScript">
    /* Collect all forms passed by array and post it */
    function submitFormsById(arFormsSubmit)
    {
    var formCollector = document.createElement("form");
    with(formCollector)
    {
    method = "post";
    action = "http://www.monsite.com/traitement_des_donnees.php";
    name = "formCollector";
    id = "formCollector";
    style.display = "none";
    }
     
    for(var ix = 0; ix<arFormsSubmit.length;ix++)
    appendFormVals2Form(document.getElementById(arFormsSubmit[ix]), formCollector);
     
    document.body.appendChild(formCollector);
    formCollector.submit();
    }
     
    /* Function: add all elements from ``frmCollectFrom´´ and append them to ``frmCollector´´ before returning ``frmCollector´´*/
    function appendFormVals2Form(frmCollectFrom, frmCollector) {
    var frm = frmCollectFrom.elements;
    for(var ix = 0 ; ix < frm.length ; ix++)
    frmCollector.appendChild(frm[ix]);
    return frmCollector;
    }
     
    </SCRIPT>
    Et pour finir:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    <INPUT TYPE="submit" value="submit" name="nom" onClick="submitFormsById(Array('form1','form2','form3'))">

    C'est parfait mais pour une raison que j'ignore, ce script ne renvoie en post qu'une valeur sur deux. En effet, quand je r�cup�re par exemple 10 champs input, toutes forms confondues, je n'ai que 5 valeurs exploitables et les autres restent d�sesp�r�ment vides.
    Ce n'est pas une erreur de ma part puisque si j'ai par exemple deux champs qui ses suivent "poids" et "prix", j'aurai le r�sultat du poids mais pas du prix MAIS si j'intervertis pour "prix" et "poids", j'aurai le r�sultat du prix mais pas du poids cette fois-ci...
    Pourtant tous les formulaires de donn�es sont bien trait�s car j'ai bien le r�sultat des tous...juste que c'est incomplet.

    Avez-vous une id�e de la r�solution de mon cas?
    Ou peut-�tre une autre piste plus simple (mais qui fonctionne)?

    Merci!

  2. #2
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par d�faut
    -> ajax si tu veux envoyer plusieurs submit
    ou un seul gros formulaire

    PS : si les champs d'un furmulaire ont le m�me nom, les navigateurs l'interprete comme un select multiple

  3. #3
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    46
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 46
    Par d�faut
    Merci beaucoup pour ta r�ponse mais elle ne m'avance pas beaucoup...

    Qu'est-ce que tu penses envoyer de mani�re asynchrone qui r�glerait mon probl�me?
    Asynchrone ou pas, un formulaire reste un formulaire (et donc exit les formulaires imbriqu�s) et en ajax, pas de preview sans upload pr�alable non plus.

    "Un seul gros formulaire" ne fonctionne pas puisqu'il ne me permettrait pas le preview des images dont je parle.

    Quant au PS, aucun des champs de mes formulaires ne partagent le m�me nom.

    Merci de bien vouloir pr�ciser ta pens�e, s'il te plait.

    Pour le reste, es-tu bon en javascript? Assez pour comprendre pourquoi ce script zappe un champ sur deux dans mes formulaires ?

    A+!

  4. #4
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par d�faut
    C'est pour faire des boucles c�t� serveur...

  5. #5
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    46
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 46
    Par d�faut
    Encore une fois merci Mathieu2000 de te pencher sur mon cas mais comprends-moi quand je te dis que ton message ne m'aide pas.
    Si je ne suis pas assez bon pour d�bugguer ce script, il y a des chances que je ne le sois pas plus pour trouver la solution � partir d'une phrase aux allures de charade.
    En quoi faire des boucles c�t� serveur peut-il r�gler mon cas?
    Php fait des boucles c�t� serveur et pourtant il ne peut r�soudre mon probl�me.

    Je sais qu'il ne faut pas que j'attende qu'on m'offre la r�ponse sur un plateau d'argent et je n'ai rien contre le fait de chercher mais l�...
    D'autant plus que j'y ai mis du mien pour que la question soit claire et d�taill�e.

    Un exemple concret peut-�tre ou une explication qui corresponde � mon cas pr�cis?

    Autre chose: tu sembles ne pas tenir compte du script que j'utilise. Est-il probl�matique, inefficace, inutile?

    Ce genre de choses...

    Merci pour ton aide et � tous ceux qui voudront bien m'aider.

  6. #6
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    des forms imbriqu�s ... heu c'est a peu pr�s la pire des chose qu'il m'ait �t� donn� de voir ...

    pourquoi ne pas faire qu'un seul form .. ?

    tu peux ne soumettre que certains elements du form :
    au lieu d'un sous form mets des fieldsets et supprime du flux au moyen d'un display none sur le onsubmit ceux que tu ne souhaites pas envoyer ...

    mes les champs en disabled ...

    mais par piti� un seul form sur la page
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  7. #7
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POO�te
    Inscrit en
    Avril 2008
    Messages
    2 652
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activit� : POO�te

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par d�faut
    Citation Envoy� par lexgotham Voir le message
    Asynchrone ou pas, un formulaire reste un formulaire (et donc exit les formulaires imbriqu�s) et en ajax, pas de preview sans upload pr�alable non plus.
    Es-tu oblig� de t'en tenir au m�canisme classique de soumission des formulaires, qui ici te pose des probl�mes assez tordus ? L'apport d'Ajax ici serait surtout de traiter "� la main" avec une fonction �crite sp�cialement pour �a, l'envoi des donn�es au serveur. C'est effectivement plus long que de s'appuyer sur le submit d'un ou plusieurs form, mais au moins tu controlerais � 100% ce que tu envoies, et quand... ^^

    Je ne sais pas si ma r�ponse est claire et/ou pertinente, mais tiens-nous au courant et on continuera � chercher...

    PS : Ok mathieu est bavard comme ma chaise mais il essaie de t'aider et a de bonnes connaissances alors ne le mords pas

  8. #8
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    46
    D�tails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 46
    Par d�faut
    SpaceFrog:

    Je vois +/- ce que tu proposes (mes connaissances en dehors du php �tant limit�es) mais il reste une inconnue:
    Comment faire pour que dans le cas d'un upload d'image, seule celle-ci soit trait�e (et affich�e automatiquement sur ma page) tout en gardant les autres donn�es entr�es par l'utilisateur intactes et non valid�es et que dans le cas d'un upload de donn�es seules celles-ci soient trait�es, sans uploader � nouveau les images?
    Une chose est s�re, la page ne doit �tre rafraichie que pour un submit de donn�es et non lors de l'upload/affichage d'images.

    Dans ce que tu proposes, je comprends que le submit n'agira que sur les champ en display (perte des donn�es des champs masqu�s alors?) mais comment distinguer le fait que l'utilisateur veuille soit uploader une image, soit valider les donn�es?
    C'est le c�t� "contextuel" que je ne saisi pas.
    Merci en tout cas, c'est une piste int�ressante !

    RomainVALERI:

    J'aurais en effet voulu traiter les images sans submit mais m�me avec Ajax, je ne vois pas comment car il faut un m�chanisme d'upload. Apr�s �a se complique car, AJAX ou pas, pour voir l'image il faut au moins l'envoyer sur le serveur mais sans bouton submit c'est exclu (on crie � l'h�r�sie quand je le propose car cela serait consid�r� comme une faille de s�curit� d'envoyer un fichier sans click de l'utilisateur).
    C'est vrai que je ne suis pas attach� au bouton submit pour les images, mais comment l'�viter.
    Saurais-tu m'en dire plus sur ton id�e?

    Merci en tous cas pour vos r�ponses.
    Si vous pouviez d�tailler vos propositions, ce serait cool .

    Je redemande au cas o�: Vous semblez tous �viter le script qui, pourtant, est � un cheveu de me d�panner. Qu'est-ce qui y pose probl�me?
    Car il me semble que je garde le contr�le de ce qui est envoy� et que cela r�ponde � mon cas: si j'upload et soumets les images, elles apparaissent sans rafraichir la page et si je valide les donn�es, seules celles-ci partent vers un script de traitement sans se soucier des images qui sont d�j� upload�es.
    Je n'insiste pas dans cette voie, juste que l'ignorer m'intrigue...

    Merci � tous ceux qui ont particip� � ce thread!

    En ce qui concerne la clart� et la pertinence de vos r�ponses, je serais mal avis� de faire des remarques mais avouez que, �rudit ou non, une phrase dans le vague n'a jamais eu pour vocation d'aider � r�soudre un probl�me.
    Cela dit, je pense �tre rest� courtois et suis venu avec des arguments. On peut exprimer un diff�rend sans se prendre le chou. Je n'ai ni mordu ni crach� dans la soupe, cela dit, mes excuses � Mathieu2000 si je l'ai offens�, ce n'�tait pas mon but.

  9. #9
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    pourquoi perte des donn�es ???
    si le champs n'est pas transmis, un simple test isset cot� sevreur et pas de traitement... donc les donn�es de la table ne sont pas modifi�es ...

    qu'est ce qui d�termine si les donn�es doivent �tre modifi�es ou pas ? le fait que le champs soit renseign� ou qu'il ai �t� modifi� ?

    Le principe reste le m�me sur le onsubmit tu testes si le champs est renseign� ou lors de sa modifiaction tu modifies un flag qui te permettra de le basculer ensuite en display none lors du submit ...
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

Discussions similaires

  1. R�ponses: 3
    Dernier message: 26/06/2008, 13h47
  2. [VS 2005][C#] Une seule icone pour tous les formulaires.
    Par Gold.strike dans le forum Windows Forms
    R�ponses: 5
    Dernier message: 26/09/2006, 14h56
  3. [JDBC]Boucle sur tous les éléments du ResultSet
    Par Terminator dans le forum JDBC
    R�ponses: 1
    Dernier message: 22/09/2005, 19h30
  4. Recherche sur tous les fichiers d'un projet
    Par Kaorichan dans le forum Eclipse Java
    R�ponses: 2
    Dernier message: 28/04/2005, 11h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo