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 :

Soumission d'un formulaire


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    manager
    Inscrit en
    Janvier 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Irlande

    Informations professionnelles :
    Activité : manager

    Informations forums :
    Inscription : Janvier 2011
    Messages : 75
    Par défaut Soumission d'un formulaire
    Bonjour,

    Je teste la possibilité pour le visiteur d'un site d'alerter le webmaster de la présence d'un lien cassé sur la page web où il est en cliquant sur une image et en choisissant avec des boutons radio le lien défectueux.
    J'ai une page de test ici, avec 3 liens, dont un faux. Ça a l'air de marcher (il faut cliquer sur l'image), mais en fait la valeur n'est pas transmise au fichier php.
    Les outils de Chrome me donnent le message :
    Form submission canceled because the form is not connected
    Voici le code :

    Code html : 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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    <!DOCTYPE html>
    <meta charset="UTF-8">
    <head>
    <title>test2</title>
    <script>
    function suite()
    {
            document.getElementById('H2O').innerHTML="Merci";
            var popup2 = document.getElementById("popup");
            var inner= popup2.innerHTML;
            inner= "</br>Votre message a été envoyé</br>vous pous fermer la fenêtre</br>";
            popup2.innerHTML= inner;
    } 
     
    function liste()
    {
            document.getElementById('H2O').innerHTML="Choisissez le lien cassé";
            var arr = [], l = document.links;
            var popup = document.getElementById("popup");
            var inner = '<form  method="post" action="traitement.php" id="zeForm">';
            var en_tete ='';
        for (var i=0; i<l.length; i++) {
              en_tete=l[i].href;
              if ((en_tete.indexOf('http') !== -1)&&(en_tete.indexOf('http://localhost') !==0)) {
            inner= inner + '<input type="radio" name="lien-kaputt" id="'+en_tete+'" value="'+en_tete+'"onChange="montre_bouton()"' + en_tete +'" >' + en_tete +'</br>';
            }
         }
        inner=inner + '</br><button type="submit" id="modalbutt" onClick="suite()">envoyer</button>';
            popup.innerHTML = inner;  
            document.getElementById('modalbutt').style.visibility='hidden'; 
    }
     
     
    function  montre_bouton()
     {
             document.getElementById('modalbutt').style.visibility='visible';
    }
     </script>
    <style>
            blabla...       
    </style>
    </head>
    <body>
    <a href="#openModal"><img alt="liammoù" title="liammoù torr"  onClick="liste()" src="liamm-torr.png" border="0" /></a>
    <div id="openModal" class="modalDialog">
    <div>
    <a href="#close" title="serriñ" class="close">X</a>
    <h2 id="H2O"></h2>
    <div id="popup">
    </div>
    </div>
    </div>
    </br>
     
    voir <a href="http://www.parkallann.bzh" target="_blank">www.parkallann.bzh</a> </br>
    voir <a href="http://parkallann.bzh" target="_blank">parkallann.bzh</a> </br>
    voir <a href="http://gougougoul.bzh" target="_blank">gougoul.bzh</a> </br>
    <div id="reponse"></div>
    </body>
    </html>

    Si je modifie la ligne définissant le bouton d'envoi (ligne 28 du code) en supprimant le onClick="suite()" :
    1 - la valeur est bien transmise à mon programme PHP (qui l'affiche pour l'occasion tellement il est content)
    2 - mais le programme reste bloqué sur la page PHP et la suite ne s'exécute pas..

    À tester ici

    Au secours ! Concernant le message de Chrome j'ai testé plusieurs solutions trouvées sur le web mais aucune n'a marché...

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonjour,
    je vois une grosse incohérence dans ton code

    Tu crées ton formulaire dans l'élément <div id="popup"> qui contient également le bouton de soumission qui lui au clic exécute la fonction suite(), donc juste avant la soumission du formulaire.

    Seulement voilà, dans ta fonction suite() tu détruis ton formulaire lorsque tu remplaces le elPopup.innerHTML par un autre contenu, ... ,lors de la soumission ton formulaire n'existe donc plus dans ta page !!

  3. #3
    Membre confirmé
    Profil pro
    manager
    Inscrit en
    Janvier 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Irlande

    Informations professionnelles :
    Activité : manager

    Informations forums :
    Inscription : Janvier 2011
    Messages : 75
    Par défaut
    Exact ! mais je ne vois pas quoi mettre dans la fonction appelée par onSubmit.. Plus généralement, ce que je ne comprends pas, c'est pourquoi dans la version modalwindow2.html, une page s'affiche générée par php, au lieu d'un retour pur et simple à mon programme. Au cas où voici le code provisoire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    header('Content-type: text/html; charset=UTF-8');
    if( $_POST){
      if (isset( $_POST['lien-kaputt'])){
       $lienkaputt = $_POST['lien-kaputt'];
       echo $lienkaputt;
     }
    }
    ?>
    J'ai essayé de vire le header ; même résultet. En fait, c'est là que se fera l'insertion du lien envoyé dans une base SQL

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 561
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 561
    Par défaut
    Citation Envoyé par kristen44 Voir le message
    une page s'affiche générée par php, au lieu d'un retour pur et simple à mon programme.
    c'est parce que le clic sur le bouton "submit" envoie les données à l'url de la balise "form" donc c'est envoyé à "traitement.php".

  5. #5
    Membre confirmé
    Profil pro
    manager
    Inscrit en
    Janvier 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Irlande

    Informations professionnelles :
    Activité : manager

    Informations forums :
    Inscription : Janvier 2011
    Messages : 75
    Par défaut
    Mais quand on envoie des données sur un serveur (formulaire ou autres), on reprend la main après normalement, non ?

  6. #6
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 561
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 561
    Par défaut
    une fois que le formulaire est envoyé, la page actuelle est déchargée et remplacée par le contenu généré par la 2e page donc "traitement.php".

    si vous voulez envoyer une requête http en javascript et rester sur la même page, essayez d'utiliser une requête ajax :
    https://dmouronval.developpez.com/tu...-requete-ajax/

  7. #7
    Membre confirmé
    Profil pro
    manager
    Inscrit en
    Janvier 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Irlande

    Informations professionnelles :
    Activité : manager

    Informations forums :
    Inscription : Janvier 2011
    Messages : 75
    Par défaut
    Hé bien hé bien, j'en apprends des choses... Apparemment, ce que j'essayais de faire n'est réalisable qu'avec AJAX ! Je marque donc résolu, même si mon problème ne pouvait pas l'être avec la méthode utilisée.

    Un grand bravo et merci à tous
    Kristen

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur de soumission d'un formulaire
    Par sagitarium dans le forum Langage
    Réponses: 1
    Dernier message: 14/05/2006, 12h21
  2. mozilla , soumission d'un formulaire dans un cadre different
    Par japz dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/05/2006, 17h10
  3. [Javascript] Validation soumission d'un formulaire
    Par nico33307 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 14/11/2005, 15h05
  4. Réponses: 2
    Dernier message: 10/11/2005, 20h00
  5. [JSP]Problème de double soumission d'un formulaire
    Par jgfa9 dans le forum Servlets/JSP
    Réponses: 31
    Dernier message: 24/08/2005, 11h54

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