Javascript et liste déroulante

[Résolu/Fermé]
Signaler
-
 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 ;)

3 réponses

Messages postés
253
Date d'inscription
samedi 24 novembre 2007
Statut
Membre
Dernière intervention
25 juillet 2009
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
1246
Date d'inscription
vendredi 8 octobre 2004
Statut
Contributeur
Dernière intervention
13 septembre 2019
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> 
Merci c'est exactement ce qu'il me fallait :)