Jump to content

Interaction entre deux balises select


TYBMHI

Recommended Posts

Bonjour à tous,

J'ai créé 1 select :

<select name="categorie" id="type" class="type">
<option value="Montagne">Montagne</option>
<option value="Mer">Mer</option>
<option value="Campagne">Campagne</option>
</select>

J'aimerais créer un second select qui interagirait avec le premier. Par exemple si l'internaute choisis "montagne" dans le premier select, j'aimerais que le second soit du style :

<select name="sous-categorie" id="sous-rubrique" class="sous-rubrique">
<option value="Alpes">Alpes</option>
<option value="Jura">Jura</option>
<option value="Vosges">Vosges</option>
</select>

ou s'il choisit Mer :

<select name="sous-categorie" id="sous-rubrique" class="sous-rubrique">
<option value="Mediterrannée">Mediterrannée</option>
<option value="Océans">Océan</option>
<option value="Plage">Plages</option>
</select>

et ainsi de suite...

Merci d'avance pour votre aide

Edited by TYBMHI
Link to comment
Share on other sites

  • 7 months later...

Tu te rends bien compte que ce que tu demandes c'est loin d'être simple !!! Je tente une ébauche de code.

tu mets un "onchange" sur ton id "type" qui va vers le javascript suivant :

function OnMySelectChange(el) {

if( $$('#type').value == 'Montagne' ) {

$A($$('#sous-rubrique' +' input'))[0].value = 'Alpes';

$A($$('#sous-rubrique' +' input'))[1].value = 'Jura';

$A($$('#sous-rubrique' +' input'))[2].value = 'Vosges';

}

if( $$('#type').value == 'Mer' ) {

...

}

}

Tu inclus le framework prototype.js pour éviter les getelementbyid..style.name trop pénibles à utilise. Il te servira pour plein de chose si tu développes en js http://www.prototypejs.org/

Quand tu maîtriseras prototype tu pourras facilement remplacer

$A($$('#sous-rubrique' +' input'))[0].value = 'Alpes';

par de l'Ajax

$A($$('#sous-rubrique' +' input'))[0].value = new Ajax.Request('/ton/url', {...

Link to comment
Share on other sites

  • 2 months later...

Hello,

Tu peux faire ceci

<script type="text/javascript" src="jq.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#s1").change(function(){
$.post("test.php", { value: $(this).val() },function(data){
$("#s2").empty();
$("#s3").empty();
$("#s2").prepend(data);
});
});
$("#s2").change(function(){
$.post("test.php", { value: $(this).val() },function(data){
$("#s3").empty();
$("#s3").prepend(data);
});
});
});
</script>
<select id="s1">
<option>v1</option>
<option>v2</option>
</select>
<select id="s2">
<option>v1</option>
<option>v2</option>
</select>
<select id="s3">
<option>v1</option>
<option>v2</option>
</select>

puis dans ta page test.php tu récupères la variable "value" passée en post via $_POST["value"] puis tu fais ton traitement php pour rechercher les correspondances.

C'est très sommaire mais ça te permettra d'avancer.

Mon jq.js correspond à jQuery.

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...