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 :

selectedIndex


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 215
    Par défaut selectedIndex
    Bonjour, j'ai un pitit probleme je vois pas d'ou ca vient alors je vous demande un peu d'aide

    Si je met un alert, les selectedIndex marche correctement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    		alert(getById('produit'+(i+1)).selectedIndex);
    		getById('produit'+(i+1)).selectedIndex = idxP[i];
    		getById('version'+(i+1)).selectedIndex = idxV[i];
    		getById('nature'+(i+1)).selectedIndex = idxN[i];
    		getById('date'+(i+1)).selectedIndex = idxD[i];
    Ca m'affiche le bon index et ca me le selectionne dans la liste
    Mais si j'enleve le alert :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    		getById('produit'+(i+1)).selectedIndex = idxP[i];
    		getById('version'+(i+1)).selectedIndex = idxV[i];
    		getById('nature'+(i+1)).selectedIndex = idxN[i];
    		getById('date'+(i+1)).selectedIndex = idxD[i];
    Ca me selectionne rien (enfin si l'index 0 par defaut ^^ )

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 453
    Par défaut
    C'est une erreur tres bizarre...
    Pouvez-vous nous envoyez tout le code AVANT et APRES avoir enleve le alert ?
    Etes-vous sur que vous enlevez QUE le alert ?

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 215
    Par défaut
    En fait mon probleme : j'ai une ligne qui decrit un produit avec 4 liste deroulante. Quand on clic sur ajouter, ca ajoute une ligne(en AJAX) avec un innerHTML += et du coup je pers mes selections alors j'ai voulu les sauvegarder avant d'ajouter une ligne puis les remettres mais ca ne marche que si je fait un alert.
    Ma methode n'est peut etre pas la mieux donc si il y a une autre solution sa resouderai aussi le probleme.


    Je sais pas si ca va beaucoup aider mais le voila:
    Code html : 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
     
    <table>
    	<tbody><tr>
    		<td>Rang</td><td>Produit</td><td>Version</td><td>Nature</td><td>Date</td>
    	</tr>
     
    <tr id="ligne1">
    	<td>1</td>
    	<td><select id="produit1" name="produit1" onchange="changeVersion(this,1);"><option>-- Choisissez un produit --</option><option value="GENEA">Généatique : Logiciel de généalogie</option><option value="SCRAP">Studio-Scrap</option><option value="PASSSCRAP">Studio-Scrap : Le passeport</option><option value="PHOFA">Photos de Famille</option><option value="ANDRO">Androsace pour les Pro</option><option value="ANDRP">Androsace pour les particuliers (sans le prêt)</option><option value="TOPON">Dictionnaires des toponymes de France</option><option value="PASSGENE">Généatique : Le passeport</option><option value="CG19">Carte Geo XIXe</option><option value="PROTEC">Protectis</option><option value="CAS">Carte de Cassini</option><option value="PASSPHOFA">Photos de Famille : Le Passeport</option><option value="CPA">Carte Postales Anciennes</option><option value="SWICCP">SWIC Carte des Patronymes</option><option value="COMFR">Commune de France</option><option value="GG">Guide Généalogique</option><option value="VGENE">Votre Généalogie</option></select></td>
    	<td><select name="version1" id="version1"></select></td>
    	<td><select id="nature1" name="nature1"><option>-- Choisissez une nature --</option><option value="CDIP ">Achat au CDIP</option><option value="CODAC">Code d'activation demandé </option><option value="TELEC">Téléchargement</option><option value="TCDIP">Achat par telechargement</option><option value="REVND">Revendeur</option><option value="CD">Demande de CD</option><option value="ACHAT">Achat</option></select></td>
    	<td><select id="date1" name="date1"><option>-- Choisissez une date --</option><option value="1">Vide</option><option value="2">Non vide</option><option value="3">J - 1</option><option value="4">J + 1</option><option value="5">J - 7</option><option value="6">J + 7</option><option value="9">M - 1</option><option value="10">M + 1</option><option value="11">M - 2</option><option value="12">M + 2</option><option value="13">M - 6</option><option value="14">M + 6</option><option value="7">J - 15</option><option value="8">J + 15</option></select></td>
    	<td><img src="../images/sup.gif" onclick="supp('1');"></td>
    </tr>
     
    </tbody></table><input type="button" class="bouton" onclick="Ajouter();" value="Ajouter"/>



    Code javascript : 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
     
    function getSelectedIndex(){
    	for(i=0;i<nbCondition;i++){
    		idxP[i] = getById('produit'+(i+1)).selectedIndex;
    		idxV[i] = getById('version'+(i+1)).selectedIndex;
    		idxN[i] = getById('nature'+(i+1)).selectedIndex;
    		idxD[i] = getById('date'+(i+1)).selectedIndex;
    	}
    };
     
    function setSelectedIndex(){
    	for(i=0;i<nbCondition-1;i++){
    		getById('produit'+(i+1)).selectedIndex = idxP[i];
    		getById('version'+(i+1)).selectedIndex = idxV[i];
    		getById('nature'+(i+1)).selectedIndex = idxN[i];
    		getById('date'+(i+1)).selectedIndex = idxD[i];
    	}
    };
     
    function Ajouter(){
    	if(nbCondition<20){//si on peut encore en ajouter
    		getSelectedIndex();	//on recupere les option selectionnees
    		nbCondition++;
    		tabParam = new Array;
    		tabParam[0] = nbCondition;
    		go('matable','ligneProduit.php',tabParam,1);
    		setSelectedIndex();
    	}else alert("Vous ne pouvez pas ajouter de condition suplementaire");
    };

  4. #4
    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,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function Ajouter(){
    if(nbCondition<20){//si on peut encore en ajouter
     getSelectedIndex();	//on recupere les option selectionnees
     nbCondition++;
     tabParam = new Array;
     tabParam[0] = nbCondition;
     go('matable','ligneProduit.php',tabParam,1);
     setTimeOut(setSelectedIndex(), 100);
    }else 
    alert("Vous ne pouvez pas ajouter de condition suplementaire");
    };
    A+

  5. #5
    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
    En complément : si ton appel Ajax est réalisé en asynchrone, mieux vaudrait appeler ta fonction dans le onreadystatechange (toujours avec le setTimeOut() ) ...

    A+

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 215
    Par défaut
    Merci c'est parfait avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setTimeout("setSelectedIndex()", 100);
    Pour l'instant je travaille sur un autre projet mais des que je reviendrai dessus je testerai dans le onreadystatechange

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 20
    Par défaut SelectIndex
    Bonjour,

    Je cherche à récupérer la valeur du selecte.

    le but est : quand je click sur le choix un autre formulaire qui s'affiche.

    la requette:

    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
    $periode_broad = ("SELECT * FROM `periode_broad`");
     
    $periode = $dbh -> prepare($periode_broad);
     
    $periode -> execute || die "Pb avec la requête <I>$periode_broad</I>: $DBI::errstr";
     
     
    la récupération des valeur ds un menu:
    <td><b>Broadcast type</b>
                            <select name="type_broadcast" id="type_broadcast">
                             <option value="">--</option>
                             <% while ($y = $typeBroad ->fetchrow_hashref){
     
                                    $id_broad = $y -> {'id_broad'} ;
     
                                    $type_broad = $y -> {'type_broad'};%>
     
                                    <option value="<%= $id_broad %>" onClick="this.form.type_broadcast.options[this.form.type_broadcast.selectedIndex].value=2;"><%= $type_broad%></option>
     
                       <%}%>
                            </select></td>
    le formulaire que je souhaite afficher qd je click sur le deuxième choix du menu type_braodcast est :
    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
    <tr id="type_broadcast" style="display:none">
                    <td colspan="2">
                        <table bordercolor=green width="70%"border=1>
                            <tr>
                            <td height=60><b>Broadcast periodicity</b>
                                 <select name="period" id="period">
                                 <option value="">--</option>
                                 <% while ($z = $periode ->fetchrow_hashref){
     
                                     $id_periode = $z -> {'id_periode'} ;
     
                                     $diffusion = $z -> {'diffusion'};%>
     
                            <option value="<%= $id_periode %>" id=""><%= $diffusion%></option>
     
                       <%}%>
                                 </select></td>
     
                            <td height=60><b>SI <> daily:</b>
                                 <select name="daily" id="daily">
                                 <option value="">--</option>
                                 <% while ($f = $daily ->fetchrow_hashref){
     
                                     $id_daily = $f -> {'id_daily'} ;
     
                                     $n_daily = $f -> {'nom_daily'};%>
     
                            <option value="<%= $id_daily %>" id=""><%= $n_daily%></option>
     
                       <%}%>
                                 </select></td>
    fonction javaScript est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <script type="text/javascript">
    function affich_showProgram(id)
    {
    var targetElement;
    targetElement = document.getElementById("type_broadcast");
    if (targetElement.style.display == "none")
    {
    targetElement.style.display = "" ;
    } else {
    targetElement.style.display = "none" ;
    }
    }
    </script>
    Si vous avez une idée, je ne suis pas trop javascript!!!

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

Discussions similaires

  1. [C#] DataGridViewComboBoxColumn + SelectedIndex
    Par Tips dans le forum Windows Forms
    Réponses: 6
    Dernier message: 10/04/2006, 23h20
  2. selectedIndex...
    Par arti2004 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/03/2006, 14h53
  3. Affectation selectedindex
    Par julio84 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/12/2005, 21h44
  4. [FLASH MX] selectedIndex dataset - datagrid
    Par totoche dans le forum Flash
    Réponses: 1
    Dernier message: 14/12/2005, 09h43
  5. Traitement sur un selectedIndex inexistant ?
    Par 10-nice dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 22/08/2005, 10h33

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