Javascript et liste déroulante

Résolu/Fermé
Alex - 26 août 2008 à 18:15
 Alex - 27 août 2008 à 10:53
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 ;)
A voir également:

3 réponses

dreamfeeder Messages postés 253 Date d'inscription samedi 24 novembre 2007 Statut Membre Dernière intervention 25 juillet 2009 54
27 août 2008 à 03:20
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
vignemail1 Messages postés 1246 Date d'inscription vendredi 8 octobre 2004 Statut Contributeur Dernière intervention 13 septembre 2019 259
26 août 2008 à 21:04
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
Merci c'est exactement ce qu'il me fallait :)
0