Position Array d'un element getElementsByName('name[]')

Eléphant du PHP | 353 Messages

30 sept. 2006, 13:22

Bonjour , je m'explique ca le titre est un peu trop long.

J'ai une liste d'element <input name="designation" type="text" value=""/>

Je sais en ajouter !

ce que je souhaite , c'est connaitre ca position dans l'array [0] ou [1] quand je focus dessus => onfocus="alert(this.*)
* est ce que je cherche !! que mettre pour connaitre sa position

la fonction pour ajouter un nouveau champ est =>
function ajoutDesignation()
	{
	input_designation = "<br /><input type='text' name='designation' size='115'/>";
	input_prix = "<br /><input type='text' name='prix' size='20'/>";
	document.getElementById('designation_div').innerHTML += input_designation;
	document.getElementById('prix_div').innerHTML += input_prix;
	}
Avez vous une idée ?

Merci d'avance

Mammouth du PHP | 19672 Messages

30 sept. 2006, 13:25

Si tu génères ces éléments dans une boucle par exemple, ajoute un id à partir d'une variable que tu incrémentes à chaque tour, tu auras donc dans ton input id="0", id="1", ..., id="n" et à partir de là, tu envoie en paramètre this.id
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

30 sept. 2006, 13:30

En passant tu ne récupérera que le dernier des champs ajoutés puisqu'ils vont tous porter le même attribut name. :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 353 Messages

30 sept. 2006, 13:51

Merci pour cette piste !! j'ai réussi !!
function ajoutDesignation()
	{
	//Récupérer le dernier nr
	var designation_length = document.getElementsByName('designation').length;
	var id_designation = document.getElementsByName('designation')[designation_length-1].id;
	////
	input_designation = "<br /><input type='text' name='designation' id='"+(parseFloat(id_designation)+parseFloat(1))+"' size='115' onfocus='alert(this.id)'/>";
	input_prix = "<br /><input type='text' name='prix' size='20'/>";
	document.getElementById('designation_div').innerHTML += input_designation;
	document.getElementById('prix_div').innerHTML += input_prix;
	}