Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

passage de valeurs entre textarea

10 réponses
Avatar
gewix
Bonjour, j'ai 1 ptit soucis en javascript j'essaie de faire comme ceci


-Soit:
-----------
1) une liste1
2) une liste2

-Soit mon script:
--------------------
fais passer valeur de la liste1 vers liste2 et vice versa = valeur
liste2 vers liste1

-Ajout fonctionnalités dans script:
-------------------------------------
je veux que les valeurs contenues dans liste1 ou liste2 s'affichent dans
un

ordre précis du genre:
----------------------------
valeur1
valeur2
valeur3, etc
ou
--------
valeurA_place1
valeurB_place2
valeurC_place3, etc
de sorte que
------------------
quand je fais "passer" mes valeurs de liste1 à liste2 et de liste2 à liste1,
les valeurs garde leur place.


Est ce possible en javascript? Si oui, connaissez vous les mots clés et
scripts déjà existants?
Merci

10 réponses

Avatar
ASM
Bonjour, j'ai 1 ptit soucis en javascript j'essaie de faire comme ceci


1) les 2 listes sont-elles toutes 2 entièrement existantes ?
2) les 2 listes sont-elles toutes 2 de même longueur ?
3) veux-tu que val_1 de liste_1 passe en val_1 de liste_2 ?

si oui c'est facile

<select name="liste_1">
blabla des options étoussa
<select name="liste_2">
autre blabla des options étoussa

<input type=button value="liste 1 -> liste 2"
onclick="var k = liste_1.options.selectedIndex;
liste_2.options[k].value = liste_1.options[k].value;">

<input type=button value="liste 2 -> liste 1"
onclick="var k = liste_2.options.selectedIndex;
liste_1.options[k].value = liste_2.options[k].value;">



--
Stephane Moriaux et son [moins] vieux Mac

Avatar
gewix


Bonjour, j'ai 1 ptit soucis en javascript j'essaie de faire comme ceci



1) les 2 listes sont-elles toutes 2 entièrement existantes ?
2) les 2 listes sont-elles toutes 2 de même longueur ?
3) veux-tu que val_1 de liste_1 passe en val_1 de liste_2 ?

si oui c'est facile

<select name="liste_1">
blabla des options étoussa
<select name="liste_2">
autre blabla des options étoussa

<input type=button value="liste 1 -> liste 2"
onclick="var k = liste_1.options.selectedIndex;
liste_2.options[k].value = liste_1.options[k].value;">

<input type=button value="liste 2 -> liste 1"
onclick="var k = liste_2.options.selectedIndex;
liste_1.options[k].value = liste_2.options[k].value;">



Oui ça ne fonctionne pas:

<select name="liste_1">
<option value="lmklmk" selected>1---lklmklklmk</option>
<option value="klklk">2---lmklkml</option>
<option value="lklkl">3---lklkkl</option>
<option value="lklklk">4---lklklk</option>
</select>
<select name="liste_2">

</select>
<input type=button value="liste 1 -> liste 2"onclick="var k =
liste_1.options.selectedIndex;liste_2.options[k].value =
liste_1.options[k].value;">
<input type=button value="liste 2 -> liste 1"onclick="var k =
liste_2.options.selectedIndex;liste_1.options[k].value =
liste_2.options[k].value;"> </p>

pour répondre à tes questions:
1) les 2 listes sont-elles toutes 2 entièrement existantes ? OUI
2) les 2 listes sont-elles toutes 2 de même longueur ? OUI (liste_1
coniens des valeurs et liste_2 est vide tant que valeurs de liste_1 non

transférées dans liste_2
3) veux-tu que val_1 de liste_1 passe en val_1 de liste_2 ? OUI



Avatar
ASM

1) les 2 listes sont-elles toutes 2 entièrement existantes ?
2) les 2 listes sont-elles toutes 2 de même longueur ?
3) veux-tu que val_1 de liste_1 passe en val_1 de liste_2 ?

si oui c'est facile

Oui ça ne fonctionne pas:



ben non
pourquoi ?

1) liste_2 est vide
donc :
NON elles n'ont pas la même longueur
2) il ne faut pas de retour à la ligne après le signe égal
dans le onclick des boutons
3) en fait tu veux avoir en liste_2
- la valeur
- ET le texte

alors re-question :
veux-tu que liste_2 se remplisse avec les choix successifs
réalisés en liste_1 ?

si oui

<button onclick="var k = liste_1.options.selectedIndex;
liste_2.length++;
var A = liste_1.options[k];
var B = liste_2.options[liste_2.length-1]
B.text = A.text
B.value = A.value;">Liste_1 -> liste_2</button>

devrait théoriquement fonctionner



je laisse le reste pour référence

<select name="liste_1">
<option value="lmklmk" selected>1---lklmklklmk</option>
<option value="klklk">2---lmklkml</option>
<option value="lklkl">3---lklkkl</option>
<option value="lklklk">4---lklklk</option>
</select>
<select name="liste_2">

</select>
<input type=button value="liste 1 -> liste 2"onclick="var k =
liste_1.options.selectedIndex;liste_2.options[k].value =
liste_1.options[k].value;">
<input type=button value="liste 2 -> liste 1"onclick="var k =
liste_2.options.selectedIndex;liste_1.options[k].value =
liste_2.options[k].value;"> </p>

pour répondre à tes questions:
1) les 2 listes sont-elles toutes 2 entièrement existantes ? OUI
2) les 2 listes sont-elles toutes 2 de même longueur ? OUI (liste_1
coniens des valeurs et liste_2 est vide tant que valeurs de liste_1 non

transférées dans liste_2
3) veux-tu que val_1 de liste_1 passe en val_1 de liste_2 ? OUI




--
Stephane Moriaux et son [moins] vieux Mac


Avatar
gewix
G suivi ton exemple et ça génère des erreurs:

<select name="liste_1" size="10">
<option value="lmklmk" selected>1---lklmklklmk</option>
<option value="klklk">2---lmklkml</option>
<option value="lklkl">3---lklkkl</option>
<option value="lklklk">4---lklklk</option>
</select>
<input name="button" type="button" onClick="var k =
liste_1.options.selectedIndex;liste_2.options[k].value =
liste_1.options[k].value;" value="liste 1 -> liste 2">
<select name="liste_2" size="10">
</select>











1) les 2 listes sont-elles toutes 2 entièrement existantes ?
2) les 2 listes sont-elles toutes 2 de même longueur ?
3) veux-tu que val_1 de liste_1 passe en val_1 de liste_2 ?

si oui c'est facile

Oui ça ne fonctionne pas:




ben non
pourquoi ?

1) liste_2 est vide
donc :
NON elles n'ont pas la même longueur
2) il ne faut pas de retour à la ligne après le signe égal
dans le onclick des boutons
3) en fait tu veux avoir en liste_2
- la valeur
- ET le texte

alors re-question :
veux-tu que liste_2 se remplisse avec les choix successifs
réalisés en liste_1 ?

si oui

<button onclick="var k = liste_1.options.selectedIndex;
liste_2.length++;
var A = liste_1.options[k];
var B = liste_2.options[liste_2.length-1]
B.text = A.text
B.value = A.value;">Liste_1 -> liste_2</button>

devrait théoriquement fonctionner



je laisse le reste pour référence

<select name="liste_1">
<option value="lmklmk" selected>1---lklmklklmk</option>
<option value="klklk">2---lmklkml</option>
<option value="lklkl">3---lklkkl</option>
<option value="lklklk">4---lklklk</option>
</select>
<select name="liste_2">

</select>
<input type=button value="liste 1 -> liste 2"onclick="var k =
liste_1.options.selectedIndex;liste_2.options[k].value =
liste_1.options[k].value;">
<input type=button value="liste 2 -> liste 1"onclick="var k =
liste_2.options.selectedIndex;liste_1.options[k].value =
liste_2.options[k].value;"> </p>

pour répondre à tes questions:
1) les 2 listes sont-elles toutes 2 entièrement existantes ? OUI
2) les 2 listes sont-elles toutes 2 de même longueur ? OUI (liste_1
coniens des valeurs et liste_2 est vide tant que valeurs de liste_1

non transférées dans liste_2
3) veux-tu que val_1 de liste_1 passe en val_1 de liste_2 ? OUI









Avatar
ASM
G suivi ton exemple et ça génère des erreurs:


c'est normal (comme il a été dit précédemment)
puisque la liste 2 EST vide !

essayer l'autre soluce :
bis-repetita :

<button onclick="var k = liste_1.options.selectedIndex;
liste_2.length++;
var A = liste_1.options[k];
var B = liste_2.options[liste_2.length-1]
B.text = A.text
B.value = A.value;">Liste_1 -> liste_2</button>



--
Stephane Moriaux et son [moins] vieux Mac

Avatar
ASM

essayer l'autre soluce :


pour fonctionner avec Opera (le mien en ts cas)
il faut :

<button onclick="var k = liste_1.options.selectedIndex;
liste_2.length++;
var A = liste_1.options[k];
var B = liste_2.options[liste_2.length-1]
B.text = A.text
B.value = A.value;
return false;">Liste_1 -> liste_2</button>

sans le 'return false;' Opera a tendance à soumettre le formulaire.

--
Stephane Moriaux et son [moins] vieux Mac

Avatar
gewix

pour fonctionner avec Opera (le mien en ts cas)
il faut :

<button onclick="var k = liste_1.options.selectedIndex;
liste_2.length++;
var A = liste_1.options[k];
var B = liste_2.options[liste_2.length-1]
B.text = A.text
B.value = A.value;
return false;">Liste_1 -> liste_2</button>

sans le 'return false;' Opera a tendance à soumettre le formulaire.


Ca fontionne nickel, maintenant je vais m'attaquer au pb de doblons, de
sorte que les valeur ne vienne pas s'ajouter à une liste si elle s'y
trouve déjà.

Avatar
ASM

sans le 'return false;' Opera a tendance à soumettre le formulaire.



Ca fontionne nickel, maintenant je vais m'attaquer au pb de doblons, de
sorte que les valeur ne vienne pas s'ajouter à une liste si elle s'y
trouve déjà.


comment comptes-tu t'y prendre ?

--
Stephane Moriaux et son [moins] vieux Mac


Avatar
gewix



sans le 'return false;' Opera a tendance à soumettre le formulaire.




Ca fontionne nickel, maintenant je vais m'attaquer au pb de doblons,
de sorte que les valeur ne vienne pas s'ajouter à une liste si elle
s'y trouve déjà.



comment comptes-tu t'y prendre ?

Je compte tester le contenu des listes, et comparer les caractères.

Par contre, ce que je ne sais pas avec le script que tu m'as donné,
c'est si la variable revient bien à sa place.



Avatar
ASM

Je compte tester le contenu des listes, et comparer les caractères.


ffuiit ! chapeau !

Par contre, ce que je ne sais pas avec le script que tu m'as donné,
c'est si la variable revient bien à sa place.


pas compris ... quelle variable ?
les seules variables sont : k, A et B
elles sont renouvelées à chaque appel
(et ne sortent pas de la fonction ou simili-fonction du onclick)

--
Stephane Moriaux et son [moins] vieux Mac