Page 1 sur 1

SELECT multiple Javascript/HTML/PHP

Posté : 27 juil. 2010, 12:35
par pignon007
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.

Re: SELECT multiple Javascript/HTML/PHP

Posté : 27 juil. 2010, 15:31
par ouckileou
Si c'est un problème HTML/Javascript donne nous le code généré, via le source navigateur. Ici le PHP pollue

Re: SELECT multiple Javascript/HTML/PHP

Posté : 27 juil. 2010, 16:51
par pignon007

<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>


Re: SELECT multiple Javascript/HTML/PHP

Posté : 27 juil. 2010, 17:13
par ouckileou
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.

Re: SELECT multiple Javascript/HTML/PHP

Posté : 27 juil. 2010, 18:00
par pignon007
Merci !