J'ai un formulaire qui contient notamment un champ et une liste déroulante.
Lorsque je valide 1 de ces champs je voudrais que la liste de données se change selon l'information... SANS valider le formulaire.
Alors j'ai bien essayé de faire un truc du genre :
<form name="form1">
<form name="form2">
</form>
</form>
J'ai joué sur le noms des formulaires, avec le javascript...etc.. Mais rien à faire ca marche pas. Il comprend pas lequel des formulaires je valide.
Quelqu'un aurait-il une idée ? Ou peut-être n'y a t il pas de solution ?
je m'y conné pas trop encore, je debut dans le php mais je pence que ca c plutot du java que du php :-/
va voir dans la section java je pence ou attent l'avi d'un exper ;)
Je ne suis pas encore un pro non plus, mais voici deux idées de solutions:
1/ Javascript: si tu connais le contenu de ta liste déroulante, tu peux créer un tableau en Javascript contenant ces différentes valeurs, puis charger les valeurs voulues dans ta liste déroulante via une fonction déclenchée par l'event onChange placé sur un des champs. Le problème est que si tu as un grand jeu de valeurs pour ta liste déroulante, le chargement de la page risque d'être un peu long.
2/ PHP: tu peux également écrire une page PHP qui va générer le contenu de ta liste déroulante, sans pour autant recharger la page. Il suffit que tu appelles cette page PHP dans une frame cachée et de rapatrier le contenu via un innerHTML. Mais c'est peut-être un peu compliqué.
Remarques, si tu as un peu de temps, la manière solution, c'est encore de jouer avec un XML et XSL au niveau client (à condition que le client possède un parseur installé sur son système).
Ce sont juste des idées qui me passent par la tête, sans être certain que tu puisses les mettre en application.
Je ne suis pas sur d'avoir bien saisie ce que tu voulais faire, mais voici un exemple (vite fait) qui repondra peut etre a ta question...
Si tu as un prb avec mon code, fait le moi savoir !!
Note : j'ai fait ca vite fait en voyant ton message, donc l'interet de ma liste reste a confirmer !!. ;-)
Allez A+ :-)
exemple :
-------------------
<html>
<head>
<script language= "JavaScript">
<!--
function updateFieldFromList(liste,champs) {
<!-- ma fonction prend donc en parametre, la liste des elements a comparer, et le champs pour afficher le resultat -->
for (var i=0; i <= liste.length; i++) {
if(liste.options[i].selected) {
champs.value = liste.options[i].value;
return;
};
}
}
-->
</script>
</head>
<form name="choix">
Une liste de themes...
<select name="entree" size=5 onClick="updateFieldFromList(this.form.entree,this.form.sortie)">
<option value="" selected> -- Choisit un theme--
<option value ="couleur">Couleur
<option value="dimension">Dimension
<option value="forme">Forme
</select>
Le resultat de ta selection (sans recharger la page) :
Merci pour ce code que je vais mettre de côté, mais concernant ce que je voulais faire ca n'est pas ca.
Si tu veux, j'ai une liste de noms dans une zone de liste entourée par la balise form.
En fonction du nom sélectionné je voudrais qu'une liste au-dessous se remplisse avec le prénom correspondant (c'est un exemple... Pas la réalité).
Ca j 'y arriverai... Mais le problème est que ces 2 listes et ce form sont justement dans un autre form pour afficher des informations sur la page php qui récupère les valeurs du post.
Donc vala.. Pas évident.
M'enfin bon, merci quand même pour ton code, il me servira pour d'autres trucs.
A mon avis le php est la meilleure solution à ton probleme...
Bon il serait quand meme bien de valider le formulaire, ne serait ce que pour raffraichir la page, mais je ne suis pas vraiment un boss dans ce domaine...
Si j'étais toi (enfin j'ai pas tres bien compris ce que tu voulais faire mais...), je ferais un truc du genre: