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 :

G�rer des attributs "value" avec Javascript


Sujet :

JavaScript

  1. #1
    Membre �clair�
    Avatar de Jarodd
    Profil pro
    Inscrit en
    Ao�t 2005
    Messages
    852
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 852
    Par d�faut G�rer des attributs "value" avec Javascript
    Bonjour,

    Peut-on utiliser du javascript pour �tablir la value d'un champ input ? Ceci ne fonctionne pas :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <input type="hidden" name="champ" value="<script language='JavaScript' type='text/javascript'>document.write(MaFonction());</script>" />
    (la fonction renvoie bien un r�sultat)

    Le but de la manoeuvre est de faire passer la valeur par un formulaire POST, en passant par php �a marche mais pas avec JS.

    Merci pour votre aide !

    Edit : r�solu (voir les messages fin page 2 + page 3 pour toutes explications)

  2. #2
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par d�faut
    Citation Envoy� par Jarodd Voir le message
    Peut-on utiliser du javascript pour �tablir la value d'un champ input ?
    Oui
    Citation Envoy� par Jarodd Voir le message
    Ceci ne fonctionne pas :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <input type="hidden" name="champ" value="<script language='JavaScript' type='text/javascript'>document.write(MaFonction());</script>" />
    Ce n'est pas comme ca qu'il faut faire...
    Si tu veux passer par javascript pour agir sur la valeur d'un champ, voici des exemples
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    <script type="text/javascript">
      document.forms['nomDuFormulaire'].elements['nomDuChamp'].value = MaFonction();
    </script>
    ou bien
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    <script type="text/javascript">
      document.getElementById('idDuChamp').value = MaFonction();
    </script>

  3. #3
    Membre �clair�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Par d�faut
    essaye plutot �a :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    <script>
    function maFonction(){
    novelleValeur=//mon calcul;
    document.getElementByTagName("champ").value=nouvelleValeur;
    };
     
    </script>
     
    <input type="hidden" name="champ" value=""/>
     
    MaFonction();
    bonne journ�e

  4. #4
    Membre �clair�
    Avatar de Jarodd
    Profil pro
    Inscrit en
    Ao�t 2005
    Messages
    852
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 852
    Par d�faut
    Merci pour le tuyau !

    Mais je ne comprend pas � quel endroit il faut mettre le script ? Est-ce cela remplace la value du champ cach� ? Dans ce cas faut-il mettre quelque chose � la place ?

    (edit : c'est la r�ponse � gwyohm, je teste le code Alexdezark de suite !)

  5. #5
    Membre �clair�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Par d�faut
    ha, y'avait d�ja une r�ponse...

    Comme �a tu as plusieures solutions

  6. #6
    Membre �clair�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Par d�faut
    alors :

    ta fonction en haut de page.

    puis ton champ masqu� (value="")

    puis l'appel � ta fonction qui d�finit la valeur de ton champ masqu�

  7. #7
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Bonjour,
    Citation Envoy� par Jarodd Voir le message
    Mais je ne comprend pas � quel endroit il faut mettre le script ?
    tu peux en faire une fonction (comme dans la r�ponse de Alexdezark), que tu pourras appeler sur le onload du <body> : elle sera lanc�e d�s la page enti�rement charg�e et alimentera ton input.

    A+

  8. #8
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Citation Envoy� par Alexdezark Voir le message
    ta fonction en haut de page.

    Pas du tout
    Au contraire : c'est l� que tu as le plus de "chance" d'avoir des erreurs (objet inexistant).
    Il faut la d�clarer dans la partie <head>, puis l'appeler soit dans le onload du body, soit en toute fin de page (au niveau de </body>.
    Citation Envoy� par Alexdezark Voir le message
    (value="")
    Non ! Peu importe la valeur qu'il avait avant

    A+

  9. #9
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par d�faut
    Citation Envoy� par Jarodd Voir le message
    Merci pour le tuyau !

    Mais je ne comprend pas � quel endroit il faut mettre le script ? Est-ce cela remplace la value du champ cach� ? Dans ce cas faut-il mettre quelque chose � la place ?

    !)
    Non il faut garder ton champ hidden :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    <form name="nomDuFormulaire">
    <input type="hidden" name="champ" value="" />
    </form>
    <script type="text/javascript">
      document.forms['nomDuFormulaire'].elements['champ'].value = MaFonction();
    </script>
    par exemple.
    Concernant la r�ponse d'Alexdezark, il y a quelques trucs qui me chiffonnent :
    document.getElementByTagName n'existe pas je crois : il s'agit de document.getElementsByTagName.
    De plus cette m�thode se base sur le nom de la balise, pas la propri�t� name donc plutot
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    document.getElementsByTagName("input");
    mais qui va renvoyer un tableau de tous les inputs... Je pense qu'Alexdezark pensait plutot � getElementsByName...

  10. #10
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Citation Envoy� par gwyohm Voir le message
    Concernant la r�ponse d'Alexdezark, il y a quelques trucs qui me chiffonnent :
    document.getElementByTagName n'existe pas je crois : il s'agit de document.getElementsByTagName.
    De plus cette m�thode se base sur le nom de la balise, pas la propri�t� name donc plutot
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    document.getElementsByTagName("input");
    mais qui va renvoyer un tableau de tous les inputs... Je pense qu'Alexdezark pensait plutot � getElementsByName...
    Je n'avais pas vu mais tu as tout � fait raison. Dans le cas pr�sent, aucun des 2 (m�me avec une syntaxe correcte) n'est pertinent.
    C'est soit
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    document.forms['nomDuFormulaire'].elements['champ'].value
    soit
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    document.getElementsById('id_input').value
    suivant si l'on est ou non dans un <form> ...

    A+

  11. #11
    Membre �clair�
    Avatar de Jarodd
    Profil pro
    Inscrit en
    Ao�t 2005
    Messages
    852
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 852
    Par d�faut
    MErci pour toutes ces r�ponses, je suis en train de tester mais le JS n'est pas mon fort, �a prend un peu de temps

  12. #12
    Membre �clair�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Par d�faut
    Oui excuse moi

    J'ai cherch� � te faire une r�ponse rapide avec tes �l�ments

    J'utilise plus volontier getElementById()

    C'est pour �a

  13. #13
    Membre �clair�
    Avatar de Jarodd
    Profil pro
    Inscrit en
    Ao�t 2005
    Messages
    852
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 852
    Par d�faut
    Bon j'avance un peu...

    Concernant la solution de gwyohm :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    <form name="nomDuFormulaire">
    <input type="hidden" name="champ" value="" />
    </form>
    <script type="text/javascript">
      document.forms['nomDuFormulaire'].elements['champ'].value = MaFonction();
    </script>
    Le formulaire ne passe pas la valeur apparemment ( <?php echo $_POST['champ']; ?> dans la page cible n'affiche rien). Mais si le script est apr�s le </form>, est-il pris en compte au moment o� on poste le formulaire ? L� j'ai l'impression qu'on envoie la valeur du champ au moment du </form> c'est-�-dire une value vide ?

    Seulement si je met le script avant, le formulaire n'existe pas encore... Je vais peut-�tre essayer avec le script dans le formulaire ? Mais c'est un peu d�gueu non ?

  14. #14
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Citation Envoy� par E.Bzz Voir le message
    l'appeler soit dans le onload du body, soit en toute fin de page (au niveau de </body>.
    A+

  15. #15
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Citation Envoy� par Jarodd Voir le message
    Mais c'est un peu d�gueu non ?
    Un peu plus, oui ...

    A+

  16. #16
    Membre Expert
    Avatar de Jumano
    Profil pro
    Inscrit en
    F�vrier 2007
    Messages
    1 163
    D�tails du profil
    Informations personnelles :
    �ge : 57
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : F�vrier 2007
    Messages : 1 163
    Par d�faut
    Bonjour,
    Essaye de mettre la valeur que tu veux obtenir pour ton champ cach�e entre guillemets :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    <script type="text/javascript">
      document.forms['nomDuFormulaire'].elements['champ'].value = "MaFonction()";
    </script>

  17. #17
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par d�faut
    Citation Envoy� par Jarodd Voir le message
    Seulement si je met le script avant, le formulaire n'existe pas encore... Je vais peut-�tre essayer avec le script dans le formulaire ? Mais c'est un peu d�gueu non ?
    Si ma solution tel que ne va pas, ca ne fonctionnera pas mieux avec le script directement dans le formulaire. Le script qui rempli le champ s'execute d�s qu'il est �crit sur la page.

    Je pense qu'il nous faut plus d'�l�ments pour t'aider : peut �tre ta fonction, ou mieux l'ensemble de la page html.

  18. #18
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Citation Envoy� par gwyohm Voir le message
    Le script qui rempli le champ s'execute d�s qu'il est �crit sur la page.
    Heu ... vaguement. Mais le probl�me est que l'objet auquel il fait r�f�rence n'existe pas forc�ment � cet instant (m�me s'il est plac� avant).
    Voir ci-dessus (onload etc) ...

    A+

  19. #19
    Membre �clair�
    Avatar de Jarodd
    Profil pro
    Inscrit en
    Ao�t 2005
    Messages
    852
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 852
    Par d�faut
    Ok je r�cap�p�te :

    Code : 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
     
    <head>
    <script language="JavaScript" type="text/javascript">
    function Chargement() {
    	document.forms['ListPost'].elements['champ'].value = Recupchamp();
    	// ceci pour tous les champs
    }
     
    function RecupChamp() {
    	var champ = window.opener.document.getElementById('formulaire').champ.value;
    	return champ;
    	}
    </script>
    </head>
     
    <body onLoad="Chargement();"> 
     
    	<form method="post" name="ListPost" action="./ListInsert.php" >
    		<input type="hidden" name="champ" value="" />
    		<!-- idem pour tous les champs -->
    	</form>
     
    </body>
    L'�v�nement onLoad() est bien ex�cut� au chargement de page, j'ai v�rifi� en mettant un alert(champ) dans RecupChamp().

    Ca vous semble correct ? parce que �a marche pas

  20. #20
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Citation Envoy� par Jarodd Voir le message
    Ca vous semble correct ? parce que �a marche pas
    Y a un probl�me l�
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var champ = window.opener.document.getElementById('formulaire').champ.value;
    Ca devrait plut�t ressembler �
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var champ = window.opener.document.getElementById('id_du_champ').value;
    Mais il faut que le 'champ' dans ton opener ait un id ...

    A+

+ R�pondre � la discussion
Cette discussion est r�solue.
Page 1 sur 3 123 Derni�reDerni�re

Discussions similaires

  1. Recuperer le noms des attributs d'une requete avec Hibernate
    Par Molkobain dans le forum Hibernate
    R�ponses: 11
    Dernier message: 11/03/2009, 08h48
  2. Probl�me d'utilisation des attributs width et height avec une image distante
    Par Ptit_Mouss dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 21/09/2006, 15h40

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