11486 sujets

JavaScript, DOM et API Web HTML5

upload/1517953902-69635-screenshot.1.jpg Bonjour,

Dans l'image ci dessus, je cherche à modifier un select, or quand j'utilise le script ci dessous, cela me modifie la première ligne.

document.getElementById('gratuit_1[]').selectedIndex = x;

Comment faire pour modifier la ligne que je souhaite ?

Merci d'avance
Modifié par nitrox13 (10 Feb 2018 - 19:10)
nitrox13 a écrit :
or quand j'utilise le script ci dessous


Du coup y'a pas de script ci dessous
Bonjour,

Je cherche à modifier le contenu des boites et quand j'utilise la commande ci dessous en javascript

document.getElementById('gratuit_1[]').selectedIndex = x;

Cela ne modifie que la première ligne et je souhaite modifier n'importe quelle ligne.
nitrox13 a écrit :
Bonjour,

Je cherche à modifier le contenu des boites et quand j'utilise la commande ci dessous en javascript

document.getElementById('gratuit_1[]').selectedIndex = x;

Cela ne modifie que la première ligne et je souhaite modifier n'importe quelle ligne.


N'ayant pas le code HTML lié à ton exemple javascript, je ne peux que tu dire "C'est normal, vu qu'un ID est unique".

Et puis selectedIndex ne sert qu'a selectionner l'index que tu veux dans un <select>.. celui ci ne sert pas à modifier.
Modifié par JENCAL (07 Feb 2018 - 14:02)
Voici le code HTML

<select name="gratuit_1[]" onchange="recupvaleur(this.value)" size="1" class="rougeCopie-3" id="gratuit_1[]">
<option selected value="N">N4
<option value="E">E</option>
<option value="DP">DP</option>
</select>

Et le Javascript

function recupvaleur(valeurChamp) {

if(valeurChamp == 'E')
{
if(confirm('Attention, si vous mettez le champ Défraiement à "' + valeurChamp + '", la plongée sera gratuite et la personne va bénéficier de 1/2 ticket défraiement'))
{
document.getElementById('gratuit_1[]').selectedIndex = 2;
}
else
{
document.getElementById('gratuit_1[]').selectedIndex = 1;
}
}
}
</script>
Je vais essayer d'être clair ... lol ...

Oui il fonctionne car je ne t'ai donné qu'une partie du code.

Il y a une boucle do while qui récupère via php/sql un certain nombre de lignes.
Donc un exemple, si j'ai 5 lignes, je vais avoir 5 fois l'ID : 'gratuit_1[]' et quand j'envoi le formulaire pour mise à jour sql, l'ID 'gratuit_1[]' se transforme en 'gratuit_1[0]' ; 'gratuit_1[1]' ... 'gratuit_1[4]'

Ce que je souhaite c'est via Javascript pouvoir modifier exemple 'gratuit_1[3]' avant l'envoi du formulaire, or 'gratuit_1[3]' n'existe pas encore.

En gros il me faudrai un truc du style :

document.getElementById('gratuit_1[3]').selectedIndex = x;
Ok, j'ai toujours pas compris omg lol

Tu cherche à faire le même code pour des futures éléments (qui utiliserais la même fonction javascript) qui n'existe pas encore ?

tu le fais déjà, il suffit de passer this en param et après tu fais ce que tu veux sur this, tu travail avec le context quoi..
Modifié par JENCAL (07 Feb 2018 - 15:19)
Super ... tu es au top ... c'est exactement ce que je cherchais depuis 2 jours.

Dernière question si je veux modifier la valeur et non plus l'index je dois mettre :

myObjet.selectedValue = N; ???
Comment ça "Changer la valeur" ?? selectedIndex permet de choisir la valeur de la liste déroulante ... je vois pas de quoi tu soit plus clair plz !
Modifié par JENCAL (07 Feb 2018 - 16:44)
Suivant les lignes je n'ai pas toujours les index dans le même ordre, c'est pour cela que je voudrai modifier directement la valeur en mettant N ou E ou DP
un petit Résolu serait le bienvenue sur le titre de ton sujet Smiley smile
Modifié par JENCAL (07 Feb 2018 - 16:42)