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 :

onclick avec select non compatible chrome


Sujet :

JavaScript

  1. #1
    Membre du Club
    Homme Profil pro
    Pour le plaisir
    Inscrit en
    Novembre 2012
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pour le plaisir
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2012
    Messages : 169
    Points : 60
    Points
    60
    Par défaut onclick avec select non compatible chrome
    bonjour
    comment rendre compatible ce morceau de script sur chrome...c'est uniquement quand c'est avec du <Select> que ça ne fonctionne pas.

    sur les autres navigateurs même internet explorer c'est bon...je pige pas

    j'en ai partous de ce genre de script...

    si quelqu'un a une solution sans tous refaire ?
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <select name="categrech" >
        <option value="0" >Catégories</option>
        <option value="" style="background-color:#b3c9cb" disabled="">-- VEHICULES --</option>
    <?php
    if ($categ == 1){
    ?>
        <option value="1" id="cat1" onclick="affichElement2('afficherauto')" selected>Automobiles</option>
    <?php
    }else{
    ?>
        <option value="1" id="cat1" onclick="affichElement2('afficherauto')" >Automobiles</option>
    <?php
    }


    code jvs

    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
    function affichElement2(elem) {
        var element = elem;
        if (element == 'afficherauto') {
            document.getElementById('vehicule').style.display='inline';
            document.getElementById('formul').style.display='none';
            document.getElementById('moto').style.display='none';
            document.getElementById('caravane').style.display='none';
            document.getElementById('utilitaire').style.display='none';
            document.getElementById('vimmob').style.display='none';
            document.getElementById('limmob').style.display='none';
            document.getElementById('aimmob').style.display='none';
            document.getElementById('rencont').style.display = 'none';
            document.getElementById('contenu2').style.display = 'inline';
        }
    }

  2. #2
    Membre confirmé Avatar de freddou17
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2013
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 341
    Points : 566
    Points
    566
    Par défaut
    Bonjour,

    pour moi tu devrais faire:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <select name="categrech" id="categId" onchange="affichElement2()">

    et du coup retirer onclick des options.

    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
    function affichElement2() {
        var element = // recuperation de ton option selected
        if (element.id="cat1") {
            document.getElementById('vehicule').style.display='inline';
            document.getElementById('formul').style.display='none';
            document.getElementById('moto').style.display='none';
            document.getElementById('caravane').style.display='none';
            document.getElementById('utilitaire').style.display='none';
            document.getElementById('vimmob').style.display='none';
            document.getElementById('limmob').style.display='none';
            document.getElementById('aimmob').style.display='none';
            document.getElementById('rencont').style.display = 'none';
            document.getElementById('contenu2').style.display = 'inline';
        }
    }
    je pense que le onchange sur le select aura plus de chance
    "Aucun de nous ne sait ce que nous savons tous, ensemble."
    Lien vers mon appli Funcash n'hésitez pas à donner votre avis

  3. #3
    Membre du Club
    Homme Profil pro
    Pour le plaisir
    Inscrit en
    Novembre 2012
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pour le plaisir
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2012
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    merci j'ai essayé avec ta methode, mais ça ne fonctionne pas, j'ai fait une erreur quelque par ?

    Code php : 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
    24
    25
    26
    27
    28
    29
    30
    31
     <select name="categrech"  id="categId" onchange="affichElement2()"> 
    	<option value="" >Catégories</option>
    	<option value="" style="background-color:#b3c9cb" disabled="">-- VEHICULES --</option>
    <?php
    if ($categ == 1){
    ?>
    	<option value="1" id="cat1" selected>Automobiles</option>
    <?php
    }else{
    ?>
    	<option value="1" id="cat1"  >Automobiles</option>
    <?php
    }
    if ($categ == 2){
    ?>
    	<option value="2" id="cat2" selected>Equipement Auto</option>
    <?php
    }else{
    ?>
    	<option value="2" id="cat2">Equipement Auto</option>
    <?php
    }
    if ($categ == 3){
    ?>
    	<option value="3" id="cat3" selected>Motos</option>
    <?php
    }else{
    ?>
    	<option value="3" id="cat3">Motos</option>
    <?php
    }


    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    function affichElement2() {
        var element = 
        if (element.id="cat1") {
    //afficherauto
            document.getElementById('vehicule').style.display='inline';
            document.getElementById('formul').style.display='none';
    	document.getElementById('moto').style.display='none';
    	document.getElementById('caravane').style.display='none';
    	document.getElementById('utilitaire').style.display='none';
    	document.getElementById('vimmob').style.display='none';
    	document.getElementById('limmob').style.display='none';
    	document.getElementById('aimmob').style.display='none';
    	document.getElementById('rencont').style.display = 'none';
    	document.getElementById('contenu2').style.display = 'inline';
    } 
    else if (element.id="cat3") {
    	//affichermoto
            document.getElementById('vehicule').style.display='none';
            document.getElementById('moto').style.display='inline';
    	document.getElementById('formul').style.display='none';
    	document.getElementById('caravane').style.display='none';
    	document.getElementById('utilitaire').style.display='none';
    	document.getElementById('vimmob').style.display='none';
    	document.getElementById('limmob').style.display='none';
    	document.getElementById('aimmob').style.display='none';
    	document.getElementById('rencont').style.display = 'none';
    	document.getElementById('contenu2').style.display = 'inline';
    }
    else if (element.id="cat5") {
    	//affichercarava
            document.getElementById('vehicule').style.display='none';
            document.getElementById('caravane').style.display='inline';
    	document.getElementById('moto').style.display='none';
    	document.getElementById('formul').style.display='none';
    	document.getElementById('utilitaire').style.display='none';
    	document.getElementById('vimmob').style.display='none';
    	document.getElementById('limmob').style.display='none';
    	document.getElementById('aimmob').style.display='none';
    	document.getElementById('rencont').style.display = 'none';
    	document.getElementById('contenu2').style.display = 'inline';
    }
    else if (element.id="cat9") {
    	//afficherutilita
            document.getElementById('vehicule').style.display='none';
    	document.getElementById('utilitaire').style.display='inline';
            document.getElementById('caravane').style.display='none';
    	document.getElementById('moto').style.display='none';
    	document.getElementById('formul').style.display='none';
    	document.getElementById('vimmob').style.display='none';
    	document.getElementById('limmob').style.display='none';
    	document.getElementById('aimmob').style.display='none';
    	document.getElementById('rencont').style.display = 'none';
    	document.getElementById('contenu2').style.display = 'inline';
    }
    else if (element.id="cat11") {
    	//affichervimo
    	document.getElementById('vimmob').style.display='inline';
            document.getElementById('vehicule').style.display='none';
    	document.getElementById('utilitaire').style.display='none';
           document.getElementById('caravane').style.display='none';
    	document.getElementById('moto').style.display='none';
    	document.getElementById('formul').style.display='none';
    	document.getElementById('limmob').style.display='none';
    	document.getElementById('aimmob').style.display='none';
    	document.getElementById('rencont').style.display = 'none';
    	document.getElementById('contenu2').style.display = 'inline';
    }
    else if (element.id="cat12") {
    	//afficherlimo
    	document.getElementById('limmob').style.display='inline';
    	document.getElementById('vimmob').style.display='none';
            document.getElementById('vehicule').style.display='none';
    	document.getElementById('utilitaire').style.display='none';
            document.getElementById('caravane').style.display='none';
    	document.getElementById('moto').style.display='none';
    	document.getElementById('formul').style.display='none';
    	document.getElementById('aimmob').style.display='none';
    	document.getElementById('rencont').style.display = 'none';
    	document.getElementById('contenu2').style.display = 'inline';
    }
    else if (element.id="cat13") {
    	//afficheraimo
    	document.getElementById('limmob').style.display='none';
    	document.getElementById('vimmob').style.display='none';
           document.getElementById('vehicule').style.display='none';
    	document.getElementById('utilitaire').style.display='none';
           document.getElementById('caravane').style.display='none';
    	document.getElementById('moto').style.display='none';
    	document.getElementById('formul').style.display='none';
    	document.getElementById('aimmob').style.display='inline';
    	document.getElementById('rencont').style.display = 'none';
    	document.getElementById('contenu2').style.display = 'inline';
    }
    else if (element.id="cat54" || element.id="cat55" ||  element.id="cat56") {
    	//afficherrenc
    	document.getElementById('limmob').style.display='none';
    	document.getElementById('vimmob').style.display='none';
           document.getElementById('vehicule').style.display='none';
    	document.getElementById('utilitaire').style.display='none';
            document.getElementById('caravane').style.display='none';
    	document.getElementById('moto').style.display='none';
    	document.getElementById('formul').style.display='none';
    	document.getElementById('aimmob').style.display='none';
    	document.getElementById('contenu2').style.display = 'none';
    	document.getElementById('rencont').style.display = 'inline';
    }
    else {
            document.getElementById('vehicule').style.display='none';
            document.getElementById('formul').style.display='inline';
    	document.getElementById('moto').style.display='none';
    	document.getElementById('caravane').style.display='none';
    	document.getElementById('utilitaire').style.display='none';
    	document.getElementById('vimmob').style.display='none';
    	document.getElementById('limmob').style.display='none';
    	document.getElementById('aimmob').style.display='none';
    	document.getElementById('rencont').style.display = 'none';
    	document.getElementById('contenu2').style.display = 'inline';
    }
    }

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 045
    Points : 44 501
    Points
    44 501
    Par défaut
    Bonjour,
    ...j'ai fait une erreur quelque par ?
    OUI au moins sur la 2éme ligne ci dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function affichElement2() {
        var element =            // égal QUOI?
        if (element.id="cat1") {

  5. #5
    Membre du Club
    Homme Profil pro
    Pour le plaisir
    Inscrit en
    Novembre 2012
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pour le plaisir
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2012
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    il me dit // recuperation de ton option selected....ouai mais comment ?
    je connais pratiquement rien en javascript

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 045
    Points : 44 501
    Points
    44 501
    Par défaut
    L'appel dans ton SELECT devrait être de la forme
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <select name="categrech"  id="categId" onchange="affichElement2( this.value)">
    de la sorte la valeur sélectionnée et transmise à la fonction.
    Dans la fonction tu peux donc récupérer cette valeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function affichElement2( param) {
        var valeur = param;          // param correspond à la valeur sélectionnée
    teste ensuite en fonction de cette valeur et non pas de l'ID de l'OPTION sélectionnée if (valeur == "cat1") {.

    Il va de soit qu'avec cettte façon de faire il te faut générer ton SELECT pour qu'il resssemble à
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <select name="categrech"  id="categId" onchange="affichElement2( this.value)">
      <option value= "cat1">Automobiles</option>
      <option value= "cat2">Equipement Auto</option>
      <!-- la suite des OPTIONs -->
    </select>

  7. #7
    Membre confirmé Avatar de freddou17
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2013
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 341
    Points : 566
    Points
    566
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    L'appel dans ton SELECT devrait être de la forme
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <select name="categrech"  id="categId" onchange="affichElement2( this.value)">
    de la sorte la valeur sélectionnée et transmise à la fonction.

    je n'y avais pas pensé

    ++
    "Aucun de nous ne sait ce que nous savons tous, ensemble."
    Lien vers mon appli Funcash n'hésitez pas à donner votre avis

  8. #8
    Membre du Club
    Homme Profil pro
    Pour le plaisir
    Inscrit en
    Novembre 2012
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pour le plaisir
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2012
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    ok, merci je vais tester.
    par contre j'ai vue que tu as mis en fonction des values en numerique, ça ne va pas bloqué tous ?

    j'ai une 2eme fonction qui va avec pour garder le div ouvert quand je revient sur la page qui prend les value aussi.
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    (function(){
        var inputsFrance = document.getElementsByName('categrech');
        for (var i=0, c=inputsFrance.length; i<c; i++) {
                if (inputsFrance[i].value == '1') {
                    document.getElementById('vehicule').style.display = 'block';
                    document.getElementById('formul').style.display = 'none';
    		document.getElementById('moto').style.display = 'none';
    		document.getElementById('caravane').style.display = 'none';
    		document.getElementById('utilitaire').style.display = 'none';
    		document.getElementById('vimmob').style.display = 'none';
    		document.getElementById('limmob').style.display = 'none';
    		document.getElementById('aimmob').style.display = 'none';
    		document.getElementById('rencont').style.display = 'none';
    		document.getElementById('contenu2').style.display = 'block';
                } 
    	    else if (inputsFrance[i].value == '3') {
                    document.getElementById('vehicule').style.display = 'none';
                    document.getElementById('formul').style.display = 'none';
    		document.getElementById('moto').style.display = 'block';
    		document.getElementById('caravane').style.display = 'none';
    		document.getElementById('utilitaire').style.display = 'none';
    		document.getElementById('vimmob').style.display = 'none';
    		document.getElementById('limmob').style.display = 'none';
    		document.getElementById('aimmob').style.display = 'none';
    		document.getElementById('rencont').style.display = 'none';
    		document.getElementById('contenu2').style.display = 'block';
                }
    	    else if (inputsFrance[i].value == '5') {
                    document.getElementById('vehicule').style.display = 'none';
                    document.getElementById('formul').style.display = 'none';
    		document.getElementById('moto').style.display = 'none';
    		document.getElementById('caravane').style.display = 'block';
    		document.getElementById('utilitaire').style.display = 'none';
    		document.getElementById('vimmob').style.display = 'none';
    		document.getElementById('limmob').style.display = 'none';
    		document.getElementById('aimmob').style.display = 'none';
    		document.getElementById('rencont').style.display = 'none';
    		document.getElementById('contenu2').style.display = 'block';
                }
    	    else if (inputsFrance[i].value == '9') {
                    document.getElementById('vehicule').style.display = 'none';
                    document.getElementById('formul').style.display = 'none';
    		document.getElementById('moto').style.display = 'none';
    		document.getElementById('caravane').style.display = 'none';
    		document.getElementById('utilitaire').style.display = 'block';
    		document.getElementById('vimmob').style.display = 'none';
    		document.getElementById('limmob').style.display = 'none';
    		document.getElementById('aimmob').style.display = 'none';
    		document.getElementById('rencont').style.display = 'none';
    		document.getElementById('contenu2').style.display = 'block';
                }
    	    else if (inputsFrance[i].value == '10') {
                    document.getElementById('vehicule').style.display = 'none';
                    document.getElementById('formul').style.display = 'none';
    		document.getElementById('moto').style.display = 'none';
    		document.getElementById('caravane').style.display = 'none';
    		document.getElementById('utilitaire').style.display = 'block';
    		document.getElementById('vimmob').style.display = 'none';
    		document.getElementById('limmob').style.display = 'none';
    		document.getElementById('aimmob').style.display = 'none';
    		document.getElementById('rencont').style.display = 'none';
    		document.getElementById('contenu2').style.display = 'block';
                }
    	    else if (inputsFrance[i].value == '11') {
                    document.getElementById('vehicule').style.display = 'none';
                    document.getElementById('formul').style.display = 'none';
    		document.getElementById('moto').style.display = 'none';
    		document.getElementById('caravane').style.display = 'none';
    		document.getElementById('utilitaire').style.display = 'none';
    		document.getElementById('vimmob').style.display = 'block';
    		document.getElementById('limmob').style.display = 'none';
    		document.getElementById('aimmob').style.display = 'none';
    		document.getElementById('rencont').style.display = 'none';
    		document.getElementById('contenu2').style.display = 'block';
                }
    	    else if (inputsFrance[i].value == '12') {
                    document.getElementById('vehicule').style.display = 'none';
                    document.getElementById('formul').style.display = 'none';
    		document.getElementById('moto').style.display = 'none';
    		document.getElementById('caravane').style.display = 'none';
    		document.getElementById('utilitaire').style.display = 'none';
    		document.getElementById('vimmob').style.display = 'none';
    		document.getElementById('limmob').style.display = 'block';
    		document.getElementById('aimmob').style.display = 'none';
    		document.getElementById('rencont').style.display = 'none';
    		document.getElementById('contenu2').style.display = 'block';
                }
    	    else if (inputsFrance[i].value == '13' || inputsFrance[i].value == '14') {
                    document.getElementById('vehicule').style.display = 'none';
                    document.getElementById('formul').style.display = 'none';
    		document.getElementById('moto').style.display = 'none';
    		document.getElementById('caravane').style.display = 'none';
    		document.getElementById('utilitaire').style.display = 'none';
    		document.getElementById('vimmob').style.display = 'none';
    		document.getElementById('limmob').style.display = 'none';
    		document.getElementById('aimmob').style.display = 'block';
    		document.getElementById('rencont').style.display = 'none';
    		document.getElementById('contenu2').style.display = 'block';
                }
    	    else if (inputsFrance[i].value == '54' || inputsFrance[i].value == '55' || inputsFrance[i].value == '56') {
    		document.getElementById('rencont').style.display = 'block';
                    document.getElementById('vehicule').style.display = 'none';
                    document.getElementById('formul').style.display = 'none';
    		document.getElementById('moto').style.display = 'none';
    		document.getElementById('caravane').style.display = 'none';
    		document.getElementById('utilitaire').style.display = 'none';
    		document.getElementById('vimmob').style.display = 'none';
    		document.getElementById('limmob').style.display = 'none';
    		document.getElementById('aimmob').style.display = 'none';
    		document.getElementById('contenu2').style.display = 'none';
    	    }
    	    else {
    		document.getElementById('rencont').style.display = 'none';
                    document.getElementById('vehicule').style.display = 'none';
                    document.getElementById('formul').style.display = 'block';
    		document.getElementById('moto').style.display = 'none';
    		document.getElementById('caravane').style.display = 'none';
    		document.getElementById('utilitaire').style.display = 'none';
    		document.getElementById('vimmob').style.display = 'none';
    		document.getElementById('limmob').style.display = 'none';
    		document.getElementById('aimmob').style.display = 'none';
    		document.getElementById('contenu2').style.display = 'block';
                }
        }
    })();

  9. #9
    Membre du Club
    Homme Profil pro
    Pour le plaisir
    Inscrit en
    Novembre 2012
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pour le plaisir
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2012
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    merci ça fonctionne enfin sur chrome

  10. #10
    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 : 53
    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
    Ceci dit, il serait grand temps que tu penses à factoriser un peu ton code...

    Ensuite, je ne vois pas trop à quoi te sert une boucle for puisque le résultat final sera manifestement toujours celui provoqué par la dernière itération.
    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

  11. #11
    Membre du Club
    Homme Profil pro
    Pour le plaisir
    Inscrit en
    Novembre 2012
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pour le plaisir
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2012
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    factoriser...si je savais le faire
    la boucle si je ne la met pas quand je refresh la page, le div ne sera pas affiché.

    j'ai un autre problème avec du checkbox... quand je sélectionne ça ferme bien le div, parcontre je voie pas comment faire quand on le désélectionne sa reste forcement fermé.
    quelqu'un a une idée ?

    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
    24
    25
     
    if (isset($lundi))
    {
    ?>
    <input type="checkbox" name="lundi" id="lund" onclick="affichElement3('lundi');" checked="checked" /> <label for="lund">Lundi</label><br>
    <?php
    }
    else
    {
    ?>
    <input type="checkbox" name="lundi" id="lund" onclick="affichElement3('lundi');"/> <label for="lund">Lundi</label><br>
    <?php
    }
    if (isset($mardi))
    {
    ?>
    <input type="checkbox" name="mardi" id="mard" onclick="affichElement3('mardi');" checked="checked" /> <label for="mard">Mardi</label><br>
    <?php
    }
    else
    {
    ?>
    <input type="checkbox" name="mardi" id="mard" onclick="affichElement3('mardi');"/> <label for="mard">Mardi</label><br>
    <?php
    }
    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
    24
    25
    26
     
    function affichElement3(elem) {
        var element = elem;
     
        if (element == 'lundi') {
            document.getElementById('lundi').style.display='none';
           }
    	if (element == 'mardi') {
            document.getElementById('mardi').style.display='none';
           }
    	if (element == 'mercredi') {
            document.getElementById('mercredi').style.display='none';
           }
    	if (element == 'jeudi') {
            document.getElementById('jeudi').style.display='none';
           }
    	if (element == 'vendredi') {
            document.getElementById('vendredi').style.display='none';
           }
    	if (element == 'samedi') {
            document.getElementById('samedi').style.display='none';
           }
    	if (element == 'dimanche') {
            document.getElementById('dimanche').style.display='none';
           }   
    }

  12. #12
    Membre confirmé Avatar de freddou17
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2013
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 341
    Points : 566
    Points
    566
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if (isset($mardi))
    {
    ?>
    <input type="checkbox" name="mardi" id="mard" onclick="affichElement3('mardi');" checked="checked" /> <label for="mard">Mardi</label><br>
    <?php
    }
    else
    {
    ?>
    <input type="checkbox" name="mardi" id="mard" onclick="affichElement3('mardi');"/> <label for="mard">Mardi</label><br>
    <?php
    }
    pourrait être remplacé par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="checkbox" name="mardi" id="mard" onclick="affichElement3('mardi');"  <?php isset($mardi) ? "checked='checked'" : ""?> /> <label for="mard">Mardi</label><br>
    par contre je ne sais si c'est une bonne pratique...

    Ensuite
    parcontre je voie pas comment faire quand on le désélectionne sa reste forcement fermé.quelqu'un a une idée ?
    que veux tu faire?

    Si lorsque tu désélectionnes tu veux ré afficher tu peux tester quelque chose ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (element == 'lundi' && document.getElementById('lundi').checked) {
            document.getElementById('lundi').style.display='none';
      }else{
            document.getElementById('lundi').style.display='none';
    }
    ++
    "Aucun de nous ne sait ce que nous savons tous, ensemble."
    Lien vers mon appli Funcash n'hésitez pas à donner votre avis

  13. #13
    Membre du Club
    Homme Profil pro
    Pour le plaisir
    Inscrit en
    Novembre 2012
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pour le plaisir
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2012
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    merci c'est exactement ce que je veut faire mais ça ne fonctionne pas aussi bien en le sélectionnant ou non.
    normalement ça doit fonctionner... comprend pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function affichElement3(elem) {
        var element = elem;
     
    	if (element == 'lundi' && document.getElementById('lundi').checked) {
            document.getElementById('lundi').style.display='none';
      }else{
            document.getElementById('lundi').style.display='inline';
    }
    j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (element == 'lundi' && document.getElementsByName('lundi').checked) {
    et ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    (function(){
        var inputsjour = document.getElementsByName('lundi');
        for (var i=0, c=inputsjour.length; i<c; i++) {
            if (inputsjour[i].checked) {
                 if (inputsjour[i].value == 'on') {
                    document.getElementById('lundi').style.display = 'none';
                } else {
                    document.getElementById('lundi').style.display = 'block';
                }
            }
        }
    })();
    mais pareille

  14. #14
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 045
    Points : 44 501
    Points
    44 501
    Par défaut
    if (element == 'lundi' && document.getElementsByName('lundi').checked)
    la méthode getElementsByName renvoie une nodeList et une nodeList n'a pas de propriété checked

  15. #15
    Membre confirmé Avatar de freddou17
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2013
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 341
    Points : 566
    Points
    566
    Par défaut
    Pourquoi tu ne veux pas utiliser les id??
    Fais attention tu as supprimé le "i" des jours l'attribut "id" des tes inputs

    ex:
    Ici tu as name=mardi et id=mard
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" name="mardi" id="mard" onclick="affichElement3('mardi');"  <?php isset($mardi) ? "checked='checked'" : ""?> /> <label for="mard">Mardi</label><br>
    je te conseille de mettre:
    Ici tu as name=mardi et id=mardi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" name="mardi" id="mardi" onclick="affichElement3('mardi');"  <?php isset($mardi) ? "checked='checked'" : ""?> /> <label for="mard">Mardi</label><br>
    comme ça if (element == 'mardi' && document.getElementById('mardi').checked) marchera
    "Aucun de nous ne sait ce que nous savons tous, ensemble."
    Lien vers mon appli Funcash n'hésitez pas à donner votre avis

  16. #16
    Membre du Club
    Homme Profil pro
    Pour le plaisir
    Inscrit en
    Novembre 2012
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pour le plaisir
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2012
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    ha ok....j’utilisais "lundi" comme nom pour afficher mes div, j'ai tous modifié...c'est bon maintenant...Mais encore un problème.
    si je sélectionne lundi, c'est bon le div ne s'affiche pas.....je sélectionne mardi en plus, lundi revient etc...je suis obligé de créer chaque fonction par jour ou il y a plus simple ?

    une autre question comment peut on voir l'erreur d'un d'un script javascript ?
    car la quand il y a une erreur rien n'est affiché.

    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
     
    function affichElement3(elem) {
        var element = elem;
     
    	if (element == 'lundi' && document.getElementById('lundi').checked) {
            document.getElementById('bloclundi').style.display='none';
        }else{
            document.getElementById('bloclundi').style.display='inline';
        }
    	if (element == 'mardi' && document.getElementById('mardi').checked) {
            document.getElementById('blocmardi').style.display='none';
        }else{
            document.getElementById('blocmardi').style.display='inline';
        }
    	if (element == 'mercredi' && document.getElementById('mercredi').checked) {
            document.getElementById('blocmercredi').style.display='none';
        }else{
            document.getElementById('blocmercredi').style.display='inline';
        }

  17. #17
    Membre confirmé Avatar de freddou17
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2013
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 341
    Points : 566
    Points
    566
    Par défaut
    Essaie ça car dans ce que tu as écrit tu passais toujours dans tous les cas...

    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
     
     
    function affichElement3(elem) {
        var element = elem;
     
    	if (element == 'lundi')
    		if(document.getElementById('lundi').checked) {
    			document.getElementById('bloclundi').style.display='none';
    		}else{
    			document.getElementById('bloclundi').style.display='inline';
    		}
    	}else if (element == 'mardi'){
    		if(document.getElementById('mardi').checked) {
    			document.getElementById('blocmardi').style.display='none';
    		}else{
    			document.getElementById('blocmardi').style.display='inline';
    		}
    	}
    //...ça continue

    Pour le débogage utilise firebug (enfin c'est ce que je préfère)

    Bon courage ++
    "Aucun de nous ne sait ce que nous savons tous, ensemble."
    Lien vers mon appli Funcash n'hésitez pas à donner votre avis

  18. #18
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 045
    Points : 44 501
    Points
    44 501
    Par défaut
    Tu aurais peut être intérêt de passer par un tableau et de faire une boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var jour = ['lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi', 'dimanche'],
        i, nb = jour.length
     
    for( i=0; i <nb; i++){
      if( document.getElementById( jour[i]).checked) {
        document.getElementById('bloc' +jour[i]).style.display='none';
      }
      else{
        document.getElementById('bloc' +jour[i]).style.display='inline';
      }
    }

  19. #19
    Membre du Club
    Homme Profil pro
    Pour le plaisir
    Inscrit en
    Novembre 2012
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pour le plaisir
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2012
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    merci pour vos aide

  20. #20
    Membre du Club
    Homme Profil pro
    Pour le plaisir
    Inscrit en
    Novembre 2012
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pour le plaisir
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2012
    Messages : 169
    Points : 60
    Points
    60
    Par défaut
    j'ai un autre problème dont je ne trouve pas la solution.
    je voulais récupérer l'url d'une frame, mais à voir c'est impossible... donc je voudrais compté le nb de clic effectué sur la page frame name="site" par l'utilisateur et le stocker dans une session...comment je peut faire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	<frameset rows="65,*" frameborder="NO" border="0" framespacing="0">
    		   <frame name="meter" src="./header.php?idp=<?php echo $_POST['frogtime'] ?>" frameborder="0" scrolling="no" />
    		 <frame name="site" src="http://www.regie.com/visit_incentive.php?id_camp=<?php echo $_POST['frogtime']; ?>&amp;id_a=99&amp;id_s=186" frameborder="0" />
    		</frameset>

Discussions similaires

  1. Script non compatible Chrome
    Par TRUNCKS dans le forum jQuery
    Réponses: 3
    Dernier message: 23/06/2011, 14h08
  2. une select qui bouge et un site non compatible avec ie6
    Par keviin dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 22/10/2009, 12h44
  3. Diffusion vidéo non compatible avec Firefox
    Par delavega dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/12/2006, 09h21
  4. Forcer le download non compatible avec IE
    Par gunth dans le forum Langage
    Réponses: 4
    Dernier message: 27/10/2006, 22h48
  5. Select avec écriture non bloquante
    Par Invité dans le forum Réseau
    Réponses: 5
    Dernier message: 24/05/2006, 16h20

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