nephanddi
Messages postés3Date d'inscriptionvendredi 4 janvier 2008StatutMembreDernière intervention 5 janvier 2008
-
4 janv. 2008 à 15:50
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 2011
-
5 janv. 2008 à 16:50
Bonjour,
cela fait 2 jours que je planche sur la question et je n'arrive toujours pas correctement à mes fins. J'espère que quelqu'un ici pourra m'aider.
Voici donc mon problème :
J'ai un formulaire dans un tableau, avec la structure suivante
La croix appelle une fonction javascript supprimant la ligne correspondant, et réattribuant des ID et Name corrects aux éléments suivants du formulaire. Aucun problème jusque là.
Par contre, quand je souhaite modifier mon select correspondant à la position afin de disposer du bon compte de lignes et que l'option selectionnée corresponde au numéro de ligne, j'ai quelques problèmes.
Voici la partie de code que j'utilise et qui me pose problème :
..
var pos_to_try=1;
while(pos_to_try<=nb_maxligne)
var elSel = document.getElementById('SelectPosition'+pos_to_try);
if (elSel.length > 0)
{
elSel.remove(elSel.length - 1);
}
pos_to_try = pos_to_try+1;
}
..
la variable nb_maxligne contient le nombre total de lignes dans mon formulaire. Mes select de position ont les ID SelectPosition1 -> SelectPosition4 (selon le screen, mais peut varier de 1 à infini)
mais ce code ne fonctionne pas toujours correctement chez moi. Suivant le nombre de lignes dans mon formulaire, et suivant la ligne que je souhaite supprimer, la boucle passera plusieurs fois dans le même select et me supprimera 2 entrées au lieu d'une, et ne passera pas du tout dans le dernier select du formulaire pour supprimer une entrée.
Je suis un peu largué par la situation, et n'étant pas un expert javascript, j'ai dépassé les limites de mes connaissances pour ce cas précis.
Si quelqu'un peu m'aider, non seulement ça m'arrangerait énormément, mais en plus je lui en serait très reconnaissant.
Merci par avance
(ps: j'espère avoir été clair dans mes explications et avoir donné toutes les informations nécessaires. Sinon je complèterai en cas de demande)
A voir également:
Supprimer la dernière option de plusieurs select en même temps
nephanddi
Messages postés3Date d'inscriptionvendredi 4 janvier 2008StatutMembreDernière intervention 5 janvier 2008 4 janv. 2008 à 19:42
Alors.. en fait, si j'ai mon formulaire qui contient 6 lignes, j'aurais mes 6 select qui contiendront les options 1 à 6, avec l'option correspondante au numéro de ligne qui sera sélectionnée.
Maintenant, selon l'example, je décide de supprimer la ligne 2. je souhaite modifier mes 5 select restants en supprimant la dernière entrée (6) puisque je n'ai plus de ligne 6 dans mon tableau.
J'espère que c'est un peu plus clair.. j'ai bien pensé avoir été un peu abstrait dans ma description de tout à l'heure
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 5 janv. 2008 à 16:50
Bonjour à vous
On ne peut que s'incliner devant l'exemple ô combien pédagogique de The Bultez.
Néanmoins...
Le javascript, très permissif, est un des rares langages
autorisant la lecture et écriture de la longueur d'un tableau.
Je prefère pour
ma part utiliser, quand cela est simple à mettre en oeuvre le remove, qui est de
surcroît tout à fait jouable dans ton cas.
Ton problème me semble plutôt
venir de ton approche !...
Testes ta fonction dans l'exemple de The Bultez, elle
marche
//------------------------ function delete_derniere(){
var pos_to_try = 1;
var nb_maxligne = 3; //
pour l'exemple
while( pos_to_try <= nb_maxligne){
var elSel = document.getElementById('toto'+pos_to_try);