Partage
  • Partager sur Facebook
  • Partager sur Twitter

[js]un code, deux résultats

    16 avril 2006 à 21:09:20

    bonjours,
    je faisais un systeme de redimension d'image, assisté par du javascript.
    pour tester le javascript, j'ai d'abord utiliser un code xhtml simplifié au maximum; le voici.
    comme vous pourez le constater en chipotant un peu, ça marche.
    j'ai donc rajouté un peu de xhtml, ici, et maintenant, lorsque j'essaye de modifier la taille en ecrivant directement le nombre de pixels ou de pourcents (c-a-d sans utiliser les boutons '-' et '+') je reçoit une erreur: la fonction x() ou y() n'existe pas (ces fonctions s'appellent réellement x() et y() :) )
    si quelqu'un sais ce qu'il ce passe, cela m'aiderait grandement.
    merci
    • Partager sur Facebook
    • Partager sur Twitter
      16 avril 2006 à 21:11:44

      Commence par donner ton code, il y a surement une erreur dedans...
      • Partager sur Facebook
      • Partager sur Twitter
        16 avril 2006 à 21:16:11

        le code est long (170 lignes), c'est pourquoi j'ai donné des lien vers les pages concernée à partir desquelles tu pourras trouver le code source.
        cela dit, voila les 2 codes xhtml (le javascript restant le meme dans les deux cas)
        • celui qui fonctionne:

        <p style="text-align: center">
        <input type="text" size="4" value="400" id="x" onKeyUp="javascript:x()" />
        x<input type="text" size="4" value="150" id="y" onKeyUp="javascript:y()" />
        <br />
        <input type="button" value="-" onclick="javascript:pourcent_x_bouton(-5)" />
        <input type="text" size="3" value="100" id="pourcent_x" onKeyUp="javascript:pourcent_x()" />
        <input type="button" value="+" onclick="javascript:pourcent_x_bouton(5)" />
        x<input type="button" value="-" onclick="javascript:pourcent_y_bouton(-5)" />
        <input type="text" size="3" value="100" id="pourcent_y" onKeyUp="javascript:pourcent_y()" />
        <input type="button" value="+" onclick="javascript:pourcent_y_bouton(5)" />
        <br />
        <input type="checkbox" checked="checked" onclick="javascript:proportion()" />
        <br />
        <img src="css/image/ban.gif" alt="" width="400" height="150" id="image" />
        </p>

        • et celui qui ne fonctionne pas

        <form action="adminimage.php" method="post">
        <fieldset class="action_image">
        <legend>redimensionner une image</legend>

        indiquez les nouvelles dimensions de l'image, en pixels:<br />
        <input type="text" size="4"value="400" id="x" onKeyUp="javascript:x()" />
        x<input type="text" size="4" name="pixel_y" value="150" id="y" onKeyUp="javascript:y()" />
        pixels<br />
        ou en pourcentages:<br />
        <input type="button" value="-" onclick="javascript:pourcent_x_bouton(-5)" />
        <input type="text" size="3" value="100" name="pourcent_x" id="pourcent_x" onKeyUp="javascript:pourcent_x(1)" />
        <input type="button" value="+" onclick="javascript:pourcent_x_bouton(5)" />%x
        <input type="button" value="-" onclick="javascript:pourcent_y_bouton(-5)" />
        <input type="text" size="3" value="100" name="pourcent_y" id="pourcent_y" onKeyUp="javascript:pourcent_y()" />
        <input type="button" value="+" onclick="javascript:pourcent_y_bouton(5)" />%
        <br />
        <label>conserver les proportions: <input type="checkbox" checked="checked" onclick="javascript:proportion()" />
        </label><br />

        <input type="submit" name="redimension" value="redimensionner" /><br />
        <img src="css/image/ban.gif" alt="blind-cana.gif" height="150" width="400" id="image" />
        </fieldset>
        </form>


        edit!


        j'ai un peu chipoté et il semblerait que se soit la balise <form> qui bloque le code... je ne peux pourtant pas m'en passer!
        • Partager sur Facebook
        • Partager sur Twitter
          17 avril 2006 à 13:35:50

          je résume un peu la situation: un code javascript qui assiste un systeme de redimensionnement d'image (conservation des proportions, aperçu "en temps réel").
          le code xhtml concerné est donc un formulaire.
          seulement voila, les fonctions réagissant à la saisie dans les differents input ne fonctionnent qu'en l'absence de balise <form></form>.
          voici l'une des quatre fonctions concernée:
          function x()
          {
             var x = document.getElementById("x").value;
             var x = Math.abs(parseInt(x));
             document.getElementById("x").value = x;
             //calcul du pourcent
             var pourcent = Math.round(x/(largeur_ini/100));
             document.getElementById("pourcent_x").value = pourcent;
             //affectation de x a l'image
             valeur_x = x+"";
             document.getElementById("image").setAttribute("width", valeur_x);
                 
             if (conserver_proportions)
             {
                  document.getElementById("pourcent_y").value = pourcent;
                  var y = Math.round(hauteur_ini/100*pourcent);
                  document.getElementById("y").value = y;
                  valeur_y = y+"";
                  document.getElementById("image").setAttribute("height", valeur_y);
             }
          }

          les code xhtml se trouvent dans mon message présedant.
          si vous voulez y voir plus claire,
          voici:

          comme vous pourrez le constater en visitant ces pages, les fonctions appelées par les boutons "+" et "-" fonctionnent.
          • Partager sur Facebook
          • Partager sur Twitter
            22 avril 2006 à 21:20:31

            up.
            s'il vous plait, si vous ne comprenez pas mon probleme ou si vous désirez plus d'information, dites le.
            • Partager sur Facebook
            • Partager sur Twitter
              23 avril 2006 à 22:44:31

              Essaie de remplacer ca :
              <input type="submit" name="redimension" value="redimensionner" />

              Par ca :
              <input type="button" name="redimension" value="redimensionner" onClick="javascript:x();y()" />
              • Partager sur Facebook
              • Partager sur Twitter
                24 avril 2006 à 21:24:06

                ca n'ira pas car si l'on a modifier uniquement la hauteur (y), comme la fonction x() sera lancée en première et qu'elle modifiera les valeur en fonction de x, le résultat sera la réinitialisation des valeurs.
                • Partager sur Facebook
                • Partager sur Twitter
                  25 avril 2006 à 17:10:50

                  encore un up parce que je ne vois pas comment formuler ma question autrement, mais je commence à desesperer
                  • Partager sur Facebook
                  • Partager sur Twitter
                    27 avril 2006 à 22:01:28

                    up
                    si quelqu'un a eu un probleme similaire ou connais un site ou je pourrais trouver des infos, ca m'aiderait
                    • Partager sur Facebook
                    • Partager sur Twitter

                    [js]un code, deux résultats

                    × 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