Partage
  • Partager sur Facebook
  • Partager sur Twitter

formulaire et javascript

Sujet résolu
    16 août 2006 à 7:55:44

    J'ai passée une petite partie de la nuit a fouillé le site pour trouver ça mais ARGH je n'ai rien vu!
    J'ai en fait un système de commentaire s'ouvrant en pop-up avec window.open()
    Pour envoyer l'ID du post je l'ai mis dans un input hidden.
    Le problème reste pour l'action du formulaire. Je peux définir l'url de la page de commentaires et ça passe très bien. Mais si j'essaie de définir le nom de la fonction pop-up ça ne marche pas hors j'aimerai rester fidèle à mon système pop-up pour les commentaires.
    Quelqun saurait comment définir l'action de mon formulaire pour qu'il y envoie les données?
    Mici beaucoup, moi je crois que je vais prendre un café car dure nuit ^^
    • Partager sur Facebook
    • Partager sur Twitter
      16 août 2006 à 8:36:52

      Salut,
      peux-tu nous dresser le décor (parties HTML et CSS de ta source, sélectionnées judicieusement ;) ) ?
      • Partager sur Facebook
      • Partager sur Twitter
        16 août 2006 à 9:34:23

        Pas de problème
        Si tu as besoin de plus que ce que je mets suffit de demander ;-)
        dans le head:
        <script language='JavaScript'>
                                  function comm()
                        {
                                window.open('message.php', 'Commentaires', 'height=250, width=400, toolbar=no, menubar=no, location=yes, resizable=no, scrollbars=yes, status=no'); return false;
                        }
                        </script>

        le formulaire
        <form method="POST" ACTION=""><?
                                <INPUT TYPE=HIDDEN NAME="PostingID" VALUE="<? echo $donnees['ID'] ?>">
                                <INPUT TYPE=IMAGE id='clic' SRC="images/comm.gif">
                                </form>


        et donc le problème c'est pour l'action. J'aimerai qu'il lance la fonction et qu'il envoie dans message.php le PostingID
        • Partager sur Facebook
        • Partager sur Twitter
          16 août 2006 à 9:46:47

          Salut,
          et rien de plus simple, grace à l'évènement onsubmit de la balise <form>

          Ce qui nous donne :
          <form method="post" onsubmit="coom(<? echo $donnees['id'] ?>); return false;" action="index.php">
           <input type="hidden" name="postingid" value="<? echo $donnees['id'] ?>
          ">
           <input type="image" id="clic" src="images/comm.gif">
          </form>


          Bien que je pense qu'un simple :
          <input type="image" id="clic" src="images/comm.gif" onclick="coom(<? echo $donnees['id'] ?>);">

          ...suffirait dans ton cas.

          function comm(ID) {
            window.open('message.php?id='+ID, 'Commentaires', 'height=250, width=400, toolbar=no, menubar=no, location=yes, resizable=no, scrollbars=yes, status=no'); return false;
          }


          Donc la page qui s'ouvrira sera message.php?id={L'ID de ta news} et tu auras simplement à récupérer l'ID en PHP avec cette instruction :
          $News_ID = $_GET['id'];


          Cordialement,
          Gregoo

          PS : Tu remarqueras aussi que le HTML est beaucoup plus gracieux avec une casse de police unique et des apostrophes (simples ou doubles) pour les valeurs des attributs
          • Partager sur Facebook
          • Partager sur Twitter
            16 août 2006 à 10:06:44

            merci mais euh...
            Le problème en fait est que j'ai mis un while pour récupérer les données de ma BDD résultat à chaque fois $donnees['ID'] change, c'est pour ça que j'ai mis un HIDDEN et donc je ne peux pas utiliser GET, je suis coincé avec POST pour envoyer le HIDDEN.
            Car sinon j'avais déjà réfléchi à GET mais voila le problème c'est qu'une fois le tour fini la variable reste sur sa dernière valeur donc c'est un peu inutile. :(

            Et euh au passage tu saurais me dire comment dans mon mysql_query faire un ORDER BY date ^^

            ps; désolé je sais je suis fort brouillon dans mes codes
            • Partager sur Facebook
            • Partager sur Twitter
              16 août 2006 à 10:15:17

              Je ne comprends pas ton problème.

              Tu as une boucle PHP qui récupère les news de ton site.
              A chaque tour de boucle tu créés ton cadre de news, tu le remplis avec le contenu de celle-ci puis tu créés un lien qui permettra à l'utilisateur de poster un commentaire sur la news ?

              Je ne vois pas à quoi te sers ce formulaire simplement pour accèder à la page permettant d'envoyer un nouveau commentaire.

              Ai-je raté une étape.

              Eclaire ma lanternement,
              Gregoo
              • Partager sur Facebook
              • Partager sur Twitter
                16 août 2006 à 10:42:46

                while ($donnees = mysql_fetch_array($reponse))
                                {
                                         if($date<=$donnees['yf']+$donnees['mf']+$donnees['df'])
                                {                     
                                        ?><table frame='hsides' border='1' BORDERCOLOR=#A48300 width='660px'>
                                        <tr><td>
                                        <div align='center'><big><font size='5'><? echo $donnees['Titre'] ?></big></font><br>
                                        <i><font size='4'>Ecrit par <? echo $donnees['Redacteur'] ?></font></i></div>
                                        <? if ($donnees['yd']==0)
                                        {
                                        echo"
                                        <big><p align='center'>Le "
                . $donnees['df'] ."/". $donnees['mf'] ."/". $donnees['yf'] ."</p></big>
                                        "
                ;
                                        }
                                        else
                                        {
                                        echo"
                                        <big><p align='center'>Du "
                . $donnees['dd'] ."/". $donnees['md'] ."/". $donnees['yd'] ." au ". $donnees['df'] ."/". $donnees['mf'] ."/". $donnees['yf'] ."</p></big>
                                        "
                ;
                                        }?>
                                        <br><?
                                        if ( empty($donnees['Photo']))
                                        {}
                                        else
                                        {echo"<img id='img' src='". $donnees['Photo'] ."'>";}?>
                                        <font size='2' face='Comic Sans MS'><? echo $donnees['Article'] ?></font>
                                        <br>
                                        <div align='right'>
                                        <form method="post" onsubmit="comm(<? echo $donnees['id'] ?>); return false;" action=""><?
                                        if ( empty($donnees['Mail']))
                                        {}
                                        else
                                        {echo"
                                        <a href='mailto:"
                . $donnees['Mail'] ."'>
                                        <img border=0 src='images/mail.jpg' id='img2'></a>
                                        "
                ;}
                                        if ($donnees['Disponibilité']=='oui')
                                        {echo"<img id='img2' src='images/libre.gif'>";}
                                        elseif ( $donnees['Disponibilité']=='non')
                                        {echo"<img id='img2' src='images/pris.gif'>";}
                                        else
                                        {echo"<img id='img2' src='images/inconnu.gif'>";}
                                        ?>
                                       
                                        <INPUT TYPE=HIDDEN NAME="PostingID" VALUE="<? echo $donnees['ID'] ?>">
                                        <INPUT TYPE=IMAGE id='clic' SRC="images/comm.gif">
                                        </form></div>
                                        </td></tr>
                                        </table><br><p align='center'>~~~~~~~~~~</p><br><?
                                }
                                }


                Le code est plus complet. Voici la boucle. Il va alors afficher l'article ayant l'ID 2,8,16 et 25 (par exemple). Sauf que $donnees['ID'] prendra la valeur 2 puis 8 puis 16 puis 25. Donc après ça si je clic sur le lien pour commenter l'article 16 la valeur sera 25 et ce sera ainsi pour tous ce pourquoi le GET est impossible ici. J'avais pensé alors marqué dans un HIDDEN à chaque tableau l'ID mais je ne sais pas comment l'envoyer par un système POST. A moins que tu aies une autre solution?
                • Partager sur Facebook
                • Partager sur Twitter
                  16 août 2006 à 10:52:35

                  Salut,
                  je pense que tu ne pourras te convaincre toi même de la valeur des ID envoyés qu'en executant un script comme celui-ci par exemple, dans ta boucle.
                  while ($donnees = mysql_fetch_array($reponse)) {
                          // [...]
                  ?>
                  <a href="javascript:comm('<? echo $donnees['ID'] ?>');">Ouvrir le pop-up vers le commentaire de la news à l'ID n°<? echo $donnees['ID'] ?></a>
                  <?
                          //[...]
                  }


                  Regarde la source générée et tu verras que pour chaque lien, l'ID envoyé à message.php sera différent.

                  Dubitativement,
                  Gregoo
                  • Partager sur Facebook
                  • Partager sur Twitter
                    16 août 2006 à 11:06:21

                    Mici beaucoup c'est tout parfait là :-)
                    Je peux encore t'embêter avec 2 petits trucs? :-°

                                    $reponse = mysql_query('SELECT * FROM agenda_du_livre WHERE Validité=1 ORDER BY "date(d,m,Y)" LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
                    hum j'aimerai pouvoir les mettre dans un ordre de la plus petite à la plus grande date (en sachant que j'ai séparé en 3 données numériques les jours mois et années)

                    <table frame='hsides' border='1' bordercolor=#A48300 width='660px'>

                    Et pour une fois firefox me lâche car les frames hsides et le bordercolor ne passent que sous IE6 o_O
                    • Partager sur Facebook
                    • Partager sur Twitter
                      16 août 2006 à 11:16:10

                      Salut,
                      • MySQL : Aucune idée
                      • Essaye style="border:#A48300"
                      • Frame... voir ma signature...


                      Cordialement,
                      Gregoo
                      • Partager sur Facebook
                      • Partager sur Twitter
                        16 août 2006 à 11:18:38

                        oki ben merci beaucoup tu auras été mon sauveur en quelque sorte :D
                        • Partager sur Facebook
                        • Partager sur Twitter
                          16 août 2006 à 11:28:57

                          Pourquoi un : ORDER BY "date(d,m,Y)" ???

                          Ca veut rien dire.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            16 août 2006 à 15:04:49

                            j'avais essayé plusieurs trucs dans l'espoir que ça marche pour la date
                            mais j'ai trouvé une alternative ;-)

                            Tout est ok, le site est en fonction temporaire sur mon DNS et je me prépare à le transférer sous un hébergement pro ;)
                            • Partager sur Facebook
                            • Partager sur Twitter

                            formulaire et javascript

                            × 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