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

HTML Discussion :

Balise form qui disparait


Sujet :

HTML

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Balise form qui disparait
    Bonjour,

    Je rencontre un pb plus qu'étrange sur une balise "Form".

    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <tr align="center">
    	<td class="linkfact">
    		<form id="fac_id[facture.fac_id;noerr;.]" method="POST" action="detail_facture.php5">
    			<input type="hidden" name="fac_id" value="[facture.fac_id;noerr;.]">
    		</form>
     
    		<a href="#" onClick="javascript:fac_id[facture.fac_id;noerr;.].submit();" title="D&eacute;tail de la facture [facture.fac_numero;noerr;.]">[facture.fac_numero;block=tr;onsection=m_Transform;.]</a>							
    	</td>								                
     
    	<td>[facture.fac_date_facture;noerr] </td>
    	<td>[facture.fac_montant_du;noerr]</td>
    	<td>[facture.fac_solde;noerr] </td>
    </tr>
    Il y a donc une liste de factures avec un lien et redirection sur l'identifiant/n°.

    Le lien fonctionne sur toutes les factures SAUF la 1ère. Cela ne vient pas de cette facture car si je ne la met pas en 1ère cela marche.
    C'est donc bien la 1ère facture qui "déconne".

    Quand je regarde le code source généré cela semble bon mais par contre quand j'inspecte l'élément avec mon navigateur (En l'occurrence Opéra) j'ai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <td class="linkfact">							
    	<input type="hidden" name="fac_id" value="3248">													
    	<a href="#" onclick="javascript:fac_id3248.submit();" title="Détail de la facture F1306000047">F1306000047</a>							
    </td>
    pour la 1ère ligne

    ET

    cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <td class="linkfact">
    	<form id="fac_id2896" method="POST" action="detail_facture.php5">
    		<input type="hidden" name="fac_id" value="2896">
    	</form>
     
    	<a href="#" onclick="javascript:fac_id2896.submit();" title="Détail de la facture F1305000052">F1305000052</a>							
    </td>
    pour les autres.

    Pour le navigateur la balise "Form" disparait donc pour la 1ère ligne !

    Dans ces conditions il me parait "logique" que la redirection ne marche pas mais je ne vois vraiment pas la source du pb.

    Merci de m'éclairer si vous comprenez quelque chose à ce phénomène.

    lb3869


    PS : A noter cela fait la même chose sur Internet Explorer.

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    J'avance dans mes recherches.

    En fait l'élément Form de la 1ère est "undefined"/"null" au moment du clic.

    Je ne sais par contre pas pourquoi.

    Si je remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#" onClick="javascript:fac_id[facture.fac_id;noerr;.].submit();" title="D&eacute;tail de la facture [facture.fac_numero;noerr;.]">[facture.fac_numero;block=tr;onsection=m_Transform;.]</a>
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#" onclick="MonSubmitForm('fac_id[facture.fac_id;noerr;.]','[facture.fac_id;noerr;.]')" title="D&eacute;tail de la facture [facture.fac_numero;noerr;.]">[facture.fac_numero;block=tr;onsection=m_Transform;.]</a>
    et la fonction appelée :
    Code javascript : 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
    function MonSubmitForm(param1,param2) {   
      if (! document.getElementById(param1))
      {
        form1 = document.createElement('form');
     
    	var input1 = document.createElement("input"); 
     
    	input1.type = "hidden";
    	input1.name = "fac_id";
    	input1.value = param2;
    	form1.appendChild(input1);  
     
    	form1.setAttribute("id", param1);
     
            form1.method = "POST";
            form1.action = "detail_facture.php5";   
     
    	document.body.appendChild(form1);	
     
    	form1.submit();
      }  
     
      document.getElementById(param1).submit();	
    }
    Cela marche.

    Mais c'est quand même "lourd" de devoir recréer l'élément en dynamique !

    Merci d'avance des éventuelles réponses.

    Bonne journée.

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onClick="javascript:fac_id[facture.fac_id;noerr;.].submit();"
    Cet événement est un non sens...
    D'une part, l'id n'est pas valide et ne peut poser que des problèmes.
    Ensuite, la notation dans ton événement est interprétée différemment de ce que tu crois...
    va chercher l'élément du tableau fac_id correspondant à l'argument.
    en dehors du fait que les points-virgule n'ont aucun sens à cet emplacement et ne sont susceptibles de générer que des erreurs, la notation facture.fac_id va rechercher la propriété fac_id de l'objet facture... pas évident que ces éléments existent réellement.

    Sans parler de la notation javascript: qui ne correspond à rien (voir la FAQ à ce sujet).
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Tout d'abord merci de ta réponse.

    Ensuite, et j'aurais du le préciser, je suis dépendant d'un existant avec un syntaxe spécifique.

    Donc fac_id[facture.fac_id;noerr;.] est bien renseigné, sinon la ligne n'existe pas, et fac_id[facture.fac_id;noerr;.] donne quelque chose comme "fac_id1234".

    C'est donc un identifiant unique pour la facture qui me permet de différencier le lien par facture (Car il y en a plusieurs).

    Et la notation "javascript:" marche dans mon cas car la méthode, ou la redirection directe, se font bien sauf pour la première ligne.

    lb3869

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Surprenant, en mettant un formulaire vide avant le 1er formulaire cela marche aussi

    J'ai un pb d'initialisation semble t'il ...

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 955
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 955
    Points : 44 103
    Points
    44 103
    Par défaut
    Bonjour,
    il me semble plus approprié d'écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#" onclick="forms['fac_id[facture.fac_id;noerr;.]'].submit();"...
    même si j'ai du mal à voir pourquoi se passer d'un INPUT type="submit".

    Concernant la disparition de la 1st FORM du code j'aurais tendance à dire que simplement tu ne la crées pas coté serveur.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Bonjour et merci de ta réponse.

    même si j'ai du mal à voir pourquoi se passer d'un INPUT type="submit".
    Tout simplement parce que je pars d'un existant auquel je dois rester au plus proche.

    Concernant la disparition de la 1st FORM du code j'aurais tendance à dire que simplement tu ne la crées pas coté serveur.
    Je veut bien, et ce serait une explication crédible, mais pourquoi justement ?

    Normalement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <form id="fac_id[facture.fac_id;noerr;.]" method="POST" action="detail_facture.php5">
    	<input type="hidden" name="fac_id" value="[facture.fac_id;noerr;.]">
    </form>
    La crée non ? D'ailleurs quand je regarde le source de la page c'est le cas ...

  8. #8
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    C'est difficile à dire : on ne sait pas à quoi correspondent tes différentes notations...
    Je t'invite à lire Important : Les règles incontournables d'utilisation de ce forum et de poster uniquement le code HTML généré ou au pire d'indiquer à quoi correspondent tes codes.

    Regarde aussi du côté du code source interprété par le navigateur (CTRL + U sur Firefox).
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/06/2011, 18h50
  2. Réponses: 4
    Dernier message: 30/07/2008, 13h46
  3. Tooltip qui disparait et mis en forme
    Par xtest dans le forum MFC
    Réponses: 17
    Dernier message: 17/04/2005, 22h52
  4. balise form
    Par sheira dans le forum ASP
    Réponses: 3
    Dernier message: 08/12/2004, 16h53
  5. LABEL QUI DISPARAIT SUR UN PICTUREBOX !
    Par Sophie42 dans le forum MFC
    Réponses: 2
    Dernier message: 13/01/2004, 12h10

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