Conflit Javascript/PHP

WRInaute discret
Bonjour à tous,


j'ai un petit conflit javascript/php...

Dans mon script PHP (un agenda), on peut ajouter plusieurs entrées simultanément,


J'ai donc plusieurs champs noms... C'est une boucle qui les crée en cyclant un formulaire. Je vais pas mettre tous les champs mais deux séries pour l'exemple. Ils son nommés ainsi:

nom_event[1]
adresse_event[1]
nom_event[2]
adresse_event[2]

Ce qui je dois avouer que lorsqu'on valide la page PHP et je dois récupérer
les valeurs pour les traiter, les nommer ainsi facilite bien la tâche puisque ce sont des tableaux... mais voilà mon problème est que je dois aussi utiliser le Javascript dans mon formulaire pour en fonction du pays détecter dans l'adresse, modifier dynamiquement une partie du formulaire, le problème est que quand je fais:

var adr=document.forms[0].adresse_event[1].value;

J'ai le conflit PHP/JS... il prend "adresse_event[1]" comme une valeur tableau dans JS et pas comme le nom de mon champ pour en retirer la valeur.


Est-ce que quelqu'un a une idée comment contourner ce problème ?


Merci d'avance de votre aide,



Laurent
 
WRInaute accro
Classique !

1- Nomme tous tes champs adresse_events[] ou nom_events[] (sans les valeurs 0, 1, 2, 3, ...)

2- Pour tester tes champ en js, fait une boucle sur tout tes champs et repère ton champ avec ceci :

début de boucle
if(document.form[0].elements.name=="adresse_event[]"){
TES TESTS
}
fin de boucle

3- tu récupère tous tes champs en PHP en $adresse_event[] avec une boucle aussi :

$c=0;
while(isset($etat[$c])){

TON CODE

$c++;
}

Voila, je sais pas si tu va comprendre mais effectivement, il y a un petit conflit dans ce cas dans le nommage des variables.
 
WRInaute discret
blman a dit:
Classique !

1- Nomme tes champs adresse_events[]

2- Pour tester tes champ en js, fait une boucle sur tout tes champs et repère ton champ avec ceci :
Code:
début de boucle
if(document.form[0].elements[i].name=="adresse_event[]"){
TES TESTS
}
fin de boucle
3- tu récupère tous tes champs en PHP en $adresse_event[] avec une boucle aussi :
Code:
$c=0;
while(isset($etat[$c])){

TON CODE

$c++;
}

Voila, je sais pas si tu va comprendre mais effectivement, il y a un petit conflit dans ce cas dans le nommage des variables.

Je vais essayer... Y a juste que le code PHP me semble un peu flou... la variable "$etat" me perturbe lol

Sinon pour le cycle JS, je suppose que je peux récupérer le nombre d'éléments pour créer la boucle avec un comptage de nombre de valeur dans le tableau "document.form[0].elements"
 
WRInaute accro
Ah oui pardons :

$c=0;
while(isset($adresse_envent[$c])){

TON CODE

$c++;
}


Pour le comptage : document.form[0].elements.length;
 
WRInaute discret
sultan a dit:
blman a dit:
Ah oui pardons :

$c=0;
while(isset($adresse_envent[$c])){

TON CODE

$c++;
}


Pour le comptage : document.form[0].elements.length;

Merci je vais essayer tout ça cette après midi :D


Après de nombreux test, j'ai simplifié le problème... en fait j'ai nommé tous mes champs avec une ID unique et j'accède à la valeur du champ par son ID ;-)
 
Discussions similaires
Haut