Partage
  • Partager sur Facebook
  • Partager sur Twitter

Comment faire submit et onclick en un seul clic ?

    28 avril 2018 à 11:04:24

    Bonjour à tous,

    J'ai un problème dans mon site : il y a deux iframes appelées "lst" et "txt".

    Dans celle appelée "lst", j'ai réussi à afficher une liste de mots français extraite de ma base de données. Chaque mot français est codé ainsi :

    echo '
    <input class="prov" id="motfran" name="motfran" type="submit" value="';echo $donnees['motfran'] . '" onclick="redirigerA();"><br>
    ';

    Lorsque je clique sur un mot français, je voudrais rediriger vers l'iframe txt un texte issu de la base de données.

    Cela fonctionne bien, sauf que je me heurte à deux problèmes :

    - il faut cliquer deux fois sur le mot français ;

    - il y a redirection vers le haut de l'iframe "lst" lors du premier clic !

    J'ai parcouru de multiples forums, j'ai essayé "return false" : cela bloque l'affichage du texte dans l'iframe txt, j'ai essayé "this", j'ai essayé de paramétrer les mots français avec "position="fixed"", mais rien ne convient.

    Tout mon code est inclus dans un fichier php, dont voici l'extrait plus complet :

    <body>
    <form method="GET" action="#" >
    
    ';
    
    while ($donnees = $reponse->fetch())
    {
    echo '
    <input class="prov" id="motfran" name="motfran" type="submit" value="';echo $donnees['motfran'] . '" onclick="redirigerA();"><br>
    ';
    }
    
    $reponse->closeCursor();
    
    echo '
    </form>
    
    <script language="javascript">
    
    function redirigerA(){
    var articl = \'';echo $_GET["motfran"].'\';
    parent.document.getElementById(\'txt\').src = "vaiquerre.php?motfran="+articl+"";
    }
    
    
    </script>
      </body>

    J'espère que mon message n'est pas trop confus. 

    Un grand merci aux personnes qui pourront m'aider.

    • Partager sur Facebook
    • Partager sur Twitter
      28 avril 2018 à 15:51:46

      Salut,

      Tu peux effectuer la 'redirection' en php : quand tu reçois les informations de ton formulaire, tu affiche la page que tu veux.

      • Partager sur Facebook
      • Partager sur Twitter

      J'aime les bandes dessinées, manhuas, manhwas, mangas, comics... Du coup j'ai fait aralosbd.fr !

        28 avril 2018 à 17:34:00

        Bonjour,

        Tu veux dire que je peux laisser tomber le système des iframes ?

        • Partager sur Facebook
        • Partager sur Twitter
          28 avril 2018 à 23:03:13

          Oups, j'ai mal lu j'avais pas vu ce 'petit' détail :)

          Mais soit tu laisse tomber les iframes, soit tu envoie ta requête en Ajax.

          Peut être qu'il y a une autre solution, mais je ne la connais pas :)

          • Partager sur Facebook
          • Partager sur Twitter

          J'aime les bandes dessinées, manhuas, manhwas, mangas, comics... Du coup j'ai fait aralosbd.fr !

            29 avril 2018 à 9:15:48

            Merci.

            Je conserve mes iframes ; je me suis donc lancé dans Ajax que je manipule pour la première fois.

            J'ai construit ce script : 

            <script language="javascript">
            
            function Rediriger() {
              var xhttp = new XMLHttpRequest();
              xhttp.onreadystatechange = function() {
                if (this.readyState == 4 && this.status == 200) {
                parent.document.getElementById(\'txt\').src = this.responseText;
                }
              };
              xhttp.open("GET", "URL", true);
              xhttp.send();
            }
            </script>


            Cela me redirige bien vers mon iframe "txt", mais l'URL n'est pas trouvée (j'ai fait des tests).

            De plus, je ne sais pas comment il faut rappeler l'identifiant "motfran", qui est défini dans la ligne que j'ai reconstruite :

            <li> <button class="prov" id="motfran" name="motfran" type="button" onclick="Rediriger()">';echo $donnees['motfran'] . '</button></li>
            



            -
            Edité par Jemedemande 29 avril 2018 à 9:44:41

            • Partager sur Facebook
            • Partager sur Twitter
              30 avril 2018 à 22:52:54

              Bon, j'ai trouvé, la solution est finalement assez simple.

              Dans le form, il faut faire :

              <form method="GET" action="vaiquerre.php" target="txt">
              

              Et dans le javascript, il faut :

              <script language="javascript">
              
              function rediriger(){
              var articl = \'';echo $_GET["motfran"].'\';
              parent.document.getElementById(\'txt\').src = "vaiquerre.php?motfran="+articl+"";
              }
              
              
              </script>

              J'ai trouvé un peu au pif, mais ça marche.

              Cela peut servir à quelqu'un.


              -
              Edité par Jemedemande 3 mai 2018 à 17:11:52

              • Partager sur Facebook
              • Partager sur Twitter

              Comment faire submit et onclick en un seul clic ?

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown