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

jQuery Discussion :

Difficultés d'acces avec .attr


Sujet :

jQuery

  1. #1
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Par défaut Difficultés d'acces avec .attr
    Bonjour a tous.

    J'ai un petit probleme avec l'ultilisation .attr.

    Je construis un select avec le resultat d'une requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    echo ("<label style=float:left; >Sous cathegorie</label><select name='sousdomaine' id='sousdomaine'>");
     
     
    	$cat=$sql->tabresSql($requete['sous_domaines']);
     
    	foreach ($cat as $domaine)
    	{
    		echo("<option value='".$domaine[2]."' id='".$domaine[1]."'>".$domaine[0]."</option>");
     
    	}
     
    	echo ("</select></br></br>");
    et j'accede a un moment avec Javascript a certaines des infos de l'element selectionné.

    Quand j'accede a l'id comme sa:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var domaine=$('#domaine option:selected').attr('id');
    aucun soucis.

    Par contre quand j'essaye d'avoir acces a la value comme sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var sousdomaine=$('#domaine option:selected').attr('value');
    cela me retourne en fait la value affiché dans le select.

    L'erreur doit venir de moi et est tres certainement enorme mais j'ai beau chercher sur le net je trouve pas.

    Si quelqun a une idée merci d'avance.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    les options n'acceptent pas d'id ...

    et en jquery c'est .val() ...

    et de manière plus directe si l'option est sélectionnée, c'est le val du select

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var sousdomaine=$('#domaine').val();
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Par défaut
    salut Ein

    Essaye avec la méthode .val(); comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var sousdomaine=$('#domaine option:selected').val();
    Tchi, dépassez par une grenouille spatiale.

  4. #4
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Par défaut
    Avec .val() sa me donne toujours la valleur affiché dans le select plustot que la valeur que j'ai mis dans value.

    L'id est bien accepté et transmis par le lien en contenant la bonne valeur.

  5. #5
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Par défaut
    Concretement quand je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value='".$domaine[2]."' id='".$domaine[1]."'>".$domaine[0]."</option>
    cela revient par exemple a

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value='5' id='3'>"traction"</option>
    avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var domaine=$('#domaine option:selected').attr('id');
    j'obtien bien 3 mais avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var sousdomaine=$('#domaine option:selected').attr('value');
    je recupere "traction" alors que je cherche a recuperer le 5

  6. #6
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Par défaut
    Citation Envoyé par EIN-LESER Voir le message
    [...] avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var sousdomaine=$('#domaine option:selected').attr('value');
    je recupere "traction" alors que je cherche a recuperer le 5
    Tu le fais exprès ou c'est un oubli ??? on t'as dit de ne pas utiliser .attr()pour récupérer la valeur mais .val() !!

  7. #7
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var sousdomaine=$('#domaine option:selected').val();
    Me donne exactement le meme resultal malheureusement

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    alors je répète ...

    Un option n'a pas d'id ...

    de plus un id ne doit jamais être uniquement numérique ni commencer par un caractère numérique
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Par défaut
    Pourtant :


    Standard Attributes

    The <option> tag supports the following standard attributes:

    Attribute Value Description DTD
    class classname Specifies a classname for an element STF
    dir rtl
    ltr Specifies the text direction for the content in an element STF
    id id Specifies a unique id for an element STF
    lang language_code Specifies a language code for the content in an element STF
    style style_definition Specifies an inline style for an element STF
    title text Specifies extra information about an element STF
    xml:lang language_code Specifies a language code for the content in an element, in XHTML documents STF
    Mais bon peu importe pour l'instant car cette partie functionne.

    Le plus simple est peut être de mettre un autre attribut pour l'attaquer en js.

  10. #10
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    Salut,

    Je sais pas si cela peut t'aider :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function choix(objetselect)
    {
    var selectione="";
     
    for (i=0; i<objetselect.options.length; i++) {
      if (objetselect.options[i].selected ) 
    { 
        selectione = objetselect.options[i].value+" ; "+selectione;
      }
    }
    return selectione;
    }
    Essaie avec ces deux propriétés :
    objetselect.options[i].text
    objetselect.options[i].value

  11. #11
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Par défaut
    J'ai essayé avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var sousdomaine=appel(document.tri.sousdomaine);
    tri étant le nom du form et sousdomaine le nom du select.

    Avec .text aussi bien qu'avec .value ça ne donne aucun résultat.

    Enfin si. ^^


    Webpage error details
    Message: 'document.tri.sousdomaine' is null or not an object
    Line: 119
    Char: 4
    Code: 0

    Ce code m'en veut. lol

  12. #12
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    j'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function ActionSelect(Objet,nominputobjet)
    {
    var selectione="";
    var Num=0;
    for (i=0; i<Objet.options.length; i++) {
      if (Objet.options[i].selected ) {
        Num=Number(Num+1);
        selectione = Objet.options[i].value+" ; "+selectione;
      }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <SELECT id="criterechoix1" name="criterechoix1" onchange="ActionSelect(this,'critere1')" onselect="ActionSelect(this,'critere1')" STYLE="width:200px" >
    				<OPTION VALUE="Artistes1">Artistes</OPTION>
    				<OPTION VALUE="Lieux1">Lieux</OPTION>
    				<OPTION VALUE="Style1">Style</OPTION>
    				<OPTION VALUE="Date1">Date</OPTION>
    			</SELECT>
    Et cela me renvoie bien la value et non le texte affiché. Donc ça marche.
    Ton erreur ne vient pas de la construction de ton select?
    Tu es sûr que $domaine[2] est diff de $domaine[0] ?

  13. #13
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Par défaut
    Voici la sortie html que m'affiche IE.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    </SELECT></BR></BR><LABEL style="FLOAT: left">Sous cathegorie</LABEL>
    <SELECT id=sousdomaine name=sousdomaine jQuery162006607640727140368="4">
    <OPTION id=6 class=39 selected value=39>autres structures</OPTION>
    <OPTION id=6 class=36 value=36>ecrans acoustiques</OPTION><OPTION id=6 class=35 value=35>murs</OPTION>
    <OPTION id=6 class=38 value=38>Oa non courants</OPTION><OPTION id=6 class=34 value=34>passages souterrains</OPTION>
    <OPTION id=6 class=33 value=33>Passerelles</OPTION><OPTION id=6 class=31 value=31>ponts-rails</OPTION>
    <OPTION id=6 class=32 value=32>Ponts-route</OPTION><OPTION id=6 class=37 value=37>tunnels</OPTION>
    </SELECT>
    La valeur mis dans class et value est bien different de ce que j'affiche pour l'user.

    Pourtant impossible d'y avoir acces.

  14. #14
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    value='39' et no value=39
    enfin je crois. D'où, objet 39 inconnu.

    dans ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo("<option value='".$domaine[2]."' id='".$domaine[1]."'>".$domaine[0]."</option>");
    tu as bien mis les '. Tu es sûr que ton code est bien généré par ce code?

    Et si tu enlève les ( ) de ton echo ? (on sait jamais )

    Sinon je vois pas pourquoi il te zappe les ' mais ton erreur vient de là.

  15. #15
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Par défaut
    J'ai trouvé ma betise mais j'aurais besoin d'un grand coup de main d'un de vous

    Quelqun pourrait il se deplacer pour me mettre son pied au c** please

    Sa pouvait pas marcher quand je chercherais a faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var sousdomaine=$('#domaine option:selected').attr('value');
    compte tenus du fait que je voulais avoir acces a la valeur value de l'option se"lectionné dans le select SOUSDOMAINE il serait bien d'essayer en attaquant le BON select snif:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var sousdomaine=$('#sousdomaine option:selected').attr('value');
    J'ai honte

    Merci pour tout en tout cas.

  16. #16
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Un id doit être unique sur la page ...

    les attribut html doivent être entre quotes

    id="monid"
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  17. #17
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    d'aprés mon post précédent, cela m'étonne que ça marche.

    renvoi une erreur non?
    comparé à id='9'.

  18. #18
    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 : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    je voulais avoir acces a la valeur value de l'option se"lectionné dans le select SOUSDOMAINE
    Encore une fois, la façon correcte de le faire est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('#sousdomaine').val();
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  19. #19
    Membre éclairé
    Avatar de Darkyl
    Homme Profil pro
    autodidacte en recherche d'emploi
    Inscrit en
    Novembre 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : autodidacte en recherche d'emploi

    Informations forums :
    Inscription : Novembre 2004
    Messages : 440
    Billets dans le blog
    1
    Par défaut
    heu :

    $('#sousdomaine option:selected').val() est egal à $('#sousdomaine').val() ?

    Jquery est vraiment trop fort .

    Je suppose qu'il renvoie toutes les val() si multiple select?...

  20. #20
    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 : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Il suffit de regarder la doc : .val().

    Quant aux attributs HTML, il ne doivent avoir une valeur et être entourés de quotes uniquement en xhtml (syntaxe XML), le HTML autorise les attributs booléens (donc sans valeur) ou l'absence de quote (mais il faut faire attention aux valeurs dans ce cas, pas d'espace ou de caractères litigieux).
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/07/2010, 16h22
  2. [VBA] supression element Acces avec Excel
    Par Emcy dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 07/11/2005, 17h30
  3. Restreindre un accès avec htacess
    Par dinver dans le forum Apache
    Réponses: 1
    Dernier message: 30/09/2005, 19h15
  4. Ouverture d'une base Acces avec Builder 6 pro
    Par tryonyco dans le forum C++Builder
    Réponses: 7
    Dernier message: 30/08/2005, 15h45
  5. probleme de chemin d'acces avec aspSmartUpload
    Par julio_097 dans le forum ASP
    Réponses: 2
    Dernier message: 22/08/2005, 16h53

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