Javascript et liste déroulante

Résolu
Alex -  
 Alex -
Bonjour,

Je souhaite vérifier en javascript que au moins un élement de ma liste deroulante multiple ait été sélectionné... Mais je ne m'en sors pas !!!

Voici mon code pr la vérification :

function select_selected(form){

for (i=0, n=form.elements.length; i<n; i++){
if ((form.elements[i].selected == true))
return true }
return false;

}

Et voici mon code sur ma page web

<form method="post" action="" name="supr_club">
Clubs à supprimer :
<select name="club_supr[]" multiple="true" size="8">
<?php
$select = "select * from clubs order by nom";
$result = mysql_query($select);
while($data = mysql_fetch_array($result)){
echo '<option value="'.$data['id'].'">'.$data['nom'].'</option>';
}
?>
</select> 
<input type="hidden" name="champ" value="<?php echo $champ; ?>">
<input type="hidden" name="asupr" value="asupr">
<input type="button" value="Supprimer" onclick="javascript:select_selected(this.form);">
</form>

Je sature.....Merci de votre aide ;)
Configuration: Windows XP
Firefox 2.0.0.16

3 réponses

  1. dreamfeeder Messages postés 253 Statut Membre 54
     
    ou sinon vu que tu verifie au click, tu peux aussi juste faire:

    function select_selected(form){

    var select = document.getElementById("club_supr");

    verif=false;

    for (i=0; i<select.length; i++)
    {
    if (select.options[i].selected == true)
    verif =true;
    }

    return verif;
    }

    et juste changer:
    <select name="club_supr[]" multiple="multiple" size="8">

    en

    <select id="club_supr" name="club_supr[]" multiple="true" size="8">

    cordialement, dreamfeeder.
    1
  2. vignemail1 Messages postés 1262 Statut Contributeur 259
     
    voici ce qui pourrait faire l'affaire:
    function makeXHR(){
    	var xmlHttp;
    	try
    	{
    		// Firefox, Opera 8.0+, Safari
    		xmlHttp=new XMLHttpRequest();
    	}
    	catch (e)
    	{
    		// Internet Explorer
    		try
    		{
    			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    		}
    		catch (e)
    		{
    			try
    			{
    				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    			}
    			catch (e)
    			{
    				alert("Your browser does not support AJAX!");
    				return false;
    			}
    		}
    	}
    	return xmlHttp;
    }
    
    function select_selected(form){
    	var select = form.getElementsByTagName("select")[0];
    	var au_moins_un = false;
    	for (i = 0; i<select.length; i++){
    		if (select.options[i].selected){
    			au_moins_un = true;
    			// ici on peut mettre le code Ajax pour supprimer le club select.options[i].value
    			/*
    			var xhr = makeXHR();
    			xhr.onreadystatechange = function()	{
    				if (xhr.readyState == 4) {
    					if (xhr.status == 200){
    						// action à faire lorsque la suppression s'est bien passée.
    					}
    				}
    			}
    			xhr.open("POST","ajax/remove_club.php", true);
    			xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    			xhr.send("remove_club="+select.options[i].value);
    			*/
    		}
    	}
    	return au_moins_un;
    }
    
    
    
    <form method="post" action="" name="supr_club">
    	Clubs à supprimer : 
    	<select name="club_supr[]" multiple="multiple" size="8">
    		<?php
    		$select = "SELECT * FROM clubs ORDER BY nom;";
    		$result = mysql_query($select);
    		while($data = mysql_fetch_array($result)){
    			echo '<option value="'.$data['id'].'">'.$data['nom'].'</option>';
    		}
    	?>
    	</select> 
    	<input type="hidden" name="champ" <?php echo "value='$champ'"; ?> />
    	<input type="hidden" name="asupr" value="asupr" />
    	<input type="button" value="Supprimer" onclick="select_selected(this.form);" />
    </form> 
    
    0
  3. Alex
     
    Merci c'est exactement ce qu'il me fallait :)
    0