Récupération texte option pour modification js dans onChange

Résolu
mrpeek Messages postés 8 Statut Membre -  
mrpeek Messages postés 8 Statut Membre -
Bonjour,

Comment faire pour récupérer et remettre en forme dans un formulaire qui recharge la page automatiquement (onChange) les données texte des options ?
Je m'explique, voici mon code :

<form action="<? $PHP_SELF; ?>" method="post">
<select name="taille" id="taille" onChange="document.location.href='vetements-'+ this.options[this.selectedIndex].text +'-'+ this.value +'.html'">
<option value="3">Taille 36</option>
<option value="4">Taille 38</option>
<option value="5" >Taille 40</option>
</select>
</form>


J'obtiens donc l'URL suivante avec ce code si je sélectionne la première valeur :
vetements-Taille%2036-3.html

Or je souhaiterai obtenir
vetements-taille-36-3.html

Pour cela il faut traiter la chaine ce caractères "Taille 36" (this.options[this.selectedIndex].text) en passant les majuscules en minuscules et en remplaçant les espaces par des "-".

Pourriez-vous m'éclairer ?

Merci

3 réponses

  1. Alain_42 Messages postés 5413 Statut Membre 904
     
    et si tu fais comme ça ?

    <form action="<?php echo  $PHP_SELF; ?>" method="post"> 
    <select name="taille" id="taille" onChange="document.location.href='vetements-'+document.getElementById(this.id)+'.html'"> 
    <option value="taille-36">Taille 36</option> 
    <option value="taille-38">Taille 38</option> 
    <option value="taille-40" >Taille 40</option> 
    </select> 
    </form>
    0
  2. Alain_42 Messages postés 5413 Statut Membre 904
     
    ou en restant dans le même esprit que ton code initial:
    <script type="text/javascript">
    function page_html(id_choix,n_index){
    	//on atteint l'élément option choisi
    	var choix=document.getElementById(id_choix);
    	
    	if(choix.value !=""){	
    		//si ce n'est pas la première ligne (--Choisissez--)
    			//recup du texte
    		var texte_option=choix.options[n_index].text;
    			//remplacement de l'espace en -			
    		var reg=new RegExp(" ", "g");
    		texte_option=texte_option.replace(reg,"-");
    		//mise en minuscules
    		texte_option=texte_option.toLowerCase();
    		//construction de l'url
    		var url="vetements-"+texte_option+"-3.html";
    		//redirection
    		document.location.href=url;
    	}
    
    }
    
    </script>
    
    <form action="<?php echo $PHP_SELF; ?>" method="post">
    
    <select name="taille" id="taille" onChange="page_html(this.id,this.selectedIndex);">
    <!-- pour avoir un changement à chaque fois il faut cette ligne --Choisissez-- sinon on ne peut pas choisir directement Taille 36 -->
    <option value="">--Choisissez--</option>
    <option value="3">Taille 36</option>
    <option value="4">Taille 38</option>
    <option value="5" >Taille 40</option>
    </select>
    </form>
    0
  3. mrpeek Messages postés 8 Statut Membre 2
     
    Merci beaucoup Alain, c'est exactement ce qu'il me fallait
    0