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 :

Passage d'une image de fond dans un input hidden


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Points : 135
    Points
    135
    Par défaut Passage d'une image de fond dans un input hidden
    Bonjour à tous et toutes,

    Ceci est la suite de mes aventures, pour que ça soit un peu plus clair, j'ai ouvert un nouveau sujet.

    Projet : permettre aux visiteurs de choisir une image de fond, pouvoir insérer l'url dans un input hidden, et de la récupérer sous forme de variable PHP du genre echo $variable pour traitement.

    Pour afficher mes images j'ai :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <div id="" style="position:relative; float:left" >
          <img src="images/01.jpg" width="400" id="img">
     </div>
     
     
    <div>
          <img src="images/01.jpg" height="110" onClick="ChangeImage(this.src);">&nbsp;&nbsp;
          <img src="images/02.jpg" height="110" onClick="ChangeImage(this.src);">&nbsp;&nbsp;
          <img src="images/03.jpg" height="110" onClick="ChangeImage(this.src);">
    </div>

    Fonction pour modifier l'image de fond :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function ChangeImage(url) {
    			document.getElementById("img").src = url
    }
    J'ai fait un set :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function remplirInput2() {
    	var monImage = img.src;
    	document.getElementById('monImage').setAttribute('src', monImage);
    }
    A priori je suis sur la bonne voie parce que quand je fais un alert(monImage) j'ai bien le chemin complet de l'image.
    Là où je suis planté lamentablement c'est pour remplir l'input, j'ai bien fait ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function setImgSrcContent(src) {   
        	var monImage = document.getElementById("img");
        		if (img) {
            	        img.src = src;
    			remplirInput2(monImage);
        	}
    }
    Et là où je devrais récupérer l'url j'ai :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form action="traitement2.php" method="post">
      <input type="hidden" name="monImage"  id="monImage"  value="" >
    <input type="submit" id="" value="Envoyer">

    Mais, ça ne fonctionne pas...
    Merci d'avoir passé un moment sur mon topic, je vous souhaite à tous de bonnes fêtes de Noël.

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Le remplissage d'input se fait de la même façon que tous les autres cas que tu as eu à traiter jusqu'ici : en modifiant leur valeur (value)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function remplirInput2() {
        document.getElementById('monImage').value = document.getElementById("img").src;
    }

  3. #3
    Membre actif Avatar de Vespiras
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2012
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 168
    Points : 265
    Points
    265
    Par défaut
    Citation Envoyé par bernard26000 Voir le message
    Fonction pour modifier l'image de fond :
    Bonjour,

    Qu'elle est ta variable img que tu utilises dans tes fonctions remplirInput2 et setImgSrcContent ?

    Sinon joyeuses fêtes a toi aussi

  4. #4
    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 : 54
    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 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('monImage').setAttribute('src', monImage);
    Il faut éviter ce genre de syntaxe. Elle permet de modifier le HTML de la page, or même s'il existe un mécanisme de synchronisation entre la modification du HTML et celle du DOM, toi, tu veux modifier le DOM, donc pour être logique et cohérent, il est donc préférable d'utiliser les objets JavaScript du DOM et de modifier leurs propriétés.

    J'avais fait une page de test pour voir le fonctionnement : http://dmouronval.developpez.com/tes...Attributs.html

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Points : 135
    Points
    135
    Par défaut
    Sylvain.... tu es un Dieu

    En fait je me suis compliqué la vie pour rien.

    Et si je veux continuer à utiliser le JavaScript il va falloir que je change un peu ma façon de raisonner....

    En tout cas je suis super content

    J'aurai probablement l'occasion de revenir vous soumettre mes petits problèmes...
    Merci Bovino et Vespiras

    Passez tous de bonnes Fêtes


  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Points : 135
    Points
    135
    Par défaut
    Ben en fait non... ca ne marche pas

    Il se passe un truc étrange, mais je vais essayer de voir d'où ca vient, rapidement, j'ai une fonction affiche qui doit me permettre de controler si j'ai bien l'url de l'image, je clique dessus, il ne se passe rien, et quand je fais envoyer, j'ai bien l'url sur la page suivante, mais rien si je ne clique pas sur la fonction affiche...

    C'est normal il ne m'arrive que des trucs de ouf ...

    Ca n'empeche pas que... bonnes fêtes a tous

    A bientôt

  7. #7
    Membre actif Avatar de Vespiras
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2012
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 168
    Points : 265
    Points
    265
    Par défaut
    Si j'ai bien compris tu es obligé de cliquer sur un bouton qui déclenche la fonction affiche pour pouvoir avoir ton URL ? Peux-tu nous montrer la fonction en question stp ?

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Points : 135
    Points
    135
    Par défaut
    Bonsoir

    Ben oui j'ai une fonction "alert" dont je ne m'occupe plus et qui pour le coup ne fonctionne pas, mais si je veux avoir l'url de mon image je dois cliquer avant sur le lien
    je te donne les 2 fonctions
    celle qui est sensée remplir l'input
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	function setZoneTextContent(valeur) {   
        	var maVariable = document.getElementById("zone");
        		if (zone) {
            	zone.textContent = valeur;
    			remplirInput(maVariable);
        	}
    }
    la fonction alert qui je le rappelle ne fonctionne pas mais qui est là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    		function affiche(){
    				document.getElementById('monImage').value = document.getElementById("img").src;
    				{
    					alert (monImage);
    				}			
    		}
    et le Href de function affiche ()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <A href="javascript:;" onClick="affiche('monImage');">Texte1</A><br>
    et si tu veux voir cette bizarrerie fonctionner viens ici :
    http://vmfloc.com/atelier/teetext.php
    Il faut vraiment que j'arrête de boire
    Bonsoir

  9. #9
    Membre éclairé Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Points : 831
    Points
    831
    Par défaut
    Bonsoir,

    Il se trouve que affiche remplit la value de l'input hidden avec le src de l'image,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('monImage').value = document.getElementById("img").src;
    mais sinon,
    il n'y a aucune raison que celle-ci soit remplie :
    il me semble pas que remplirInput2 soit appelée à quelque moment que ce soit...

    Fred

  10. #10
    Membre éclairé Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Points : 831
    Points
    831
    Par défaut
    2 autres remarques :
    1 - setZoneCSS est définie 2 fois différemment. Heureusement, la deuxième est correcte.
    2 - remplirInput et remplirInput2 ne prennent pas de paramètre et pourtant quand tu les appelles, tu leur passe un paramètre : quelle est ton intention ? quelles valeurs ont les variables que tu utilises alors si tant est qu'elles en ont une ?
    Fred

  11. #11
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Oui, le code est peuplé de bizarreries en tout genre, il faudrait faire un peu de ménage. A commencer par les variables: tu en déclares que tu n'utilises pas, et tu en utilises qui ne sont pas déclarées. Par exemple zone n'est pas déclaré dans setZoneTextContent ; et monImage non plus dans la fonction affiche. Pour éviter les confusions, ça serait bien de mettre des ID explicites comme "InputPourMonImage" au lieu de "monImage". Enfin c'est juste un conseil pour s'y retrouver

  12. #12
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 075
    Points : 44 657
    Points
    44 657
    Par défaut
    Bonjour,
    C'est normal il ne m'arrive que des trucs de ouf ...
    indépendamment de ce qu'écrit SylvainPV, et que tu n'as d'ailleurs aucunement pris en compte dans ta dernière discussion, il te faut au chargement de la page que ton champ soit rempli avec la valeur par défaut de ton image.

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Points : 135
    Points
    135
    Par défaut
    Bonjour à tous,

    En fait je me suis compliqué la tache inutilement, ca doit être à cause de mes origines shadok, qui avaient pour devise "pourquoi faire simple quand on peut faire compliqué ?"
    Ma fonction "remplirInput"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function remplirInput2() {
    	document.getElementById('monImage').value = document.getElementById("img").src;
    }
    Que j'ai tout simplement appelé dans un onClick
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <input type="hidden" name="monImage"  id="monImage"  value="" >
    <input type="submit" id="" value="Envoyer" onClick="remplirInput2()">
    et maintenant oui je peux le dire ça fonctionne à merveille.
    Merci à vous tous et Joyeux Noël

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 21/09/2006, 17h33
  2. Mettre une image de fond dans Etat QuickReport
    Par touhami dans le forum Composants VCL
    Réponses: 3
    Dernier message: 29/12/2005, 17h29
  3. Réponses: 5
    Dernier message: 27/09/2005, 09h18
  4. Etirer une image de fond dans une cellule
    Par dreamanoir dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 13/07/2005, 14h39
  5. Réponses: 4
    Dernier message: 03/05/2005, 09h03

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