SELECT multiple Javascript/HTML/PHP

Petit nouveau ! | 3 Messages

27 juil. 2010, 12:35

Bonjour,

Débutant en PHP, j'ai du créer une interface web pour gérer mes comptes FTP.
Seulement, j'ai un problème avec un SELECT multiple en HTML.
Quand je mets les [] à la fin du nom du select, j'ai un "liste is not defined" dans la console d'erreur de firefox.
Voici des extraits de mon code (tout est dans la même page) :

<?php

if($_POST['delhid'] == "1") // Champ caché
		{
		 if(isset($_POST['liste'])) // Mon tableau "liste" 
						    // qui pose problème justement
			{
			 $Col1_Array = $_POST['liste'];
			 foreach($Col1_Array as $selectValue)
				{
				 echo $selectValue."<br>"; 
				}
			}
		}
?>


<HTML>
<BODY>

<FORM name="ftpacc" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">

<center>
		<INPUT TYPE=HIDDEN NAME="addhid" value="2">
                <INPUT type="button" value="ADD" name="add" onclick="checkform(pass, conf, acc, liste, addhid);">
</center>

<SELECT multiple name="liste[]">


<?php

	$list = array();

	 exec("awk 'BEGIN { FS = \":\" } ; { print $1 }' /etc/ftpd.passwd", $list);
		 for($i=0;$i<sizeof($list);$i++)
			{
			 echo ('<OPTION VALUE="'.$i.'">'.$list[$i].'</OPTION>');
			}
			
?>

</SELECT>

Code : Tout sélectionner

<SCRIPT language="Javascript"> <!-- function checkform(password1, password2, acc, liste, addhid) {...} </SCRIPT>
</FORM>

</BODY>
</HTML>

Une idée ?

Merci d'avance pour vos réponses,

P.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

27 juil. 2010, 15:31

Si c'est un problème HTML/Javascript donne nous le code généré, via le source navigateur. Ici le PHP pollue

Petit nouveau ! | 3 Messages

27 juil. 2010, 16:51


<HTML>
<BODY>

<FORM name="ftpacc" action="/index.php" method="POST">

<center>

<img src="images/logo.jpg" height="100" width="120" >

<br /><br />

<big><big><B>Administration des comptes FTP</B></big></big>

<br /><br />

<TABLE BORDER=2>
<TR>
	<TD>Account : </TD>
	<TD>
	<INPUT type=text name="acc">
	</TD>
</TR>

<TR>
	<TD>Password :</TD>

	<TD>
	<INPUT type=password name="pass">
	</TD>
</TR>

<TR>
	<TD>Confirm :</TD>
	<TD>
	<INPUT type=password name="conf">
	</TD>

</TR>

<TR>
	<TD COLSPAN=2>
		<center>
			<INPUT TYPE=HIDDEN NAME="addhid" value="2">
			<INPUT type="button" value="ADD" name="add" onclick="checkform(pass, conf, acc, liste, addhid);">
		</center>
	</TD>
</TR>

<TR>
	<TD>
		<SELECT multiple name="liste[]">
<OPTION VALUE="0">file1</OPTION>
<OPTION VALUE="1">file2</OPTION>
<OPTION VALUE="2">file3</OPTION>
<OPTION VALUE="3">file4</OPTION>

		</SELECT>
		
	</TD>

	<TD>
		<center>
			<INPUT type="submit" value="REFRESH" name="refresh">
		</center>

	</TD>
</TR>

<TR>
	<TD COLSPAN=2>
	<INPUT TYPE=HIDDEN NAME="delhid" value="2">
	<INPUT type="button" value="DELETE" name="del" onclick="confirmation(all, liste, delhid);">
	<INPUT type="checkbox" value="all" name="all">
	Also delete the contents of the account(s)
	</TD>
</TR>



</TABLE>

</center>

Code : Tout sélectionner

<SCRIPT language="Javascript"> <!-- function confirmation(all, liste, delhid) { // var selectedList = new Array(); var selectionne = false; for (var i=0; i<liste.options.length; i++) { if (liste.options[i].selected) { selectionne = true; break; //selectedList.push(liste.options[i]); } } if (selectionne == false) { alert('Aucun compte selectionne !'); return false; } else { if (all.checked == true) { if (confirm('Etes-vous sur de vouloir supprimer ce(s) compte(s) FTP ainsi que leurs donnees ?')) { document.ftpacc.elements["delhid"].value = "1"; document.ftpacc.submit(); return true; } else return false; } else { if (confirm('Etes-vous sur de vouloir supprimer ce(s) compte(s) FTP ? (Les donnees du compte resteront intactes)')) { document.ftpacc.elements["delhid"].value = "1"; document.ftpacc.submit(); return true; } else return false; } } } function checkform(password1, password2, acc, liste, addhid) { if (acc.value == '') { alert('Le champ Account doit etre renseigne !'); return false; } // do various checks, this will save people noticing mistakes on next page else if (password1.value == '' || password2.value == '') { alert('Merci de remplir les deux champs relatifs au mot de passe.'); return false; } else if (password1.value.length < 8) { alert('La taille du mot de passe doit faire au moins 8 caracteres.'); return false; } else if (password1.value != password2.value) { alert('Les deux mots de passe que vous avez ins�r�s ne correspondent pas.'); return false; } else { for (var i = 0; i < liste.length ; i++) { if (liste.options[i].text == acc.value) { alert('Un compte porte deja ce nom.'); return false; } } alert('Le formulaire est OK !'); document.ftpacc.elements["addhid"].value = "1"; document.ftpacc.submit(); return true; } } //--> </SCRIPT>

</FORM>

</BODY>
</HTML>


Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

27 juil. 2010, 17:13

En utilisant un id cela fonctionne:
<SELECT multiple name="liste[]" id="liste">
<INPUT type="button" value="ADD" name="add" onclick="checkform(pass, conf, acc, document.getElementById('liste'), addhid);">
Sinon il y a plusieurs erreurs dans ton code, il manque par exemple des guillemets autour des HIDDEN.

Petit nouveau ! | 3 Messages

27 juil. 2010, 18:00

Merci !