J'ai un formulaire que je valide en utilisant le JavaScript. Maintenant, lorsque je soumets le formulaire, je ne peux pas utiliser les cases à cocher dans ce formulaire.Paramètres JavaScript et PHP
Ceci est une partie de mon JS qui compte et valide les cases à cocher.
<script type="text/javascript">
function validateForm()
{
//My Declarations
var cases = addClients.caseType.length;
var total = 0;
var fnReturn = true;
//My Script goes here
for (var idx = 0; idx < cases; idx++)
{
if (addClients.caseType[idx].checked == true)
total += 1;
}
if (total == 0)
{
document.getElementById('caseErr').style.visibility =" visible";
fnReturn = false;
}
else
document.getElementById('caseErr').style.visibility = "hidden";
return (fnReturn == true)?true:false;
}
</script>
La page suivante que la forme présente les données est comme suit (la partie des cases à cocher):
<?php
$cases = $_POST['caseType'];
for ($i=0;$i<count($cases);$i++)
echo "<li>$cases[$i] \n";
Faisant écho aux $cases
imprime une seule lettre de la case à cocher sélectionnée.
Je veux savoir ce que je fais mal ici.
EDIT:
C'est ma forme
<form id="addClients" method="post" action="confirmAdd.php" onsubmit="return validateForm();">
<table border="0">
<tr align="center">
<th align="center">Client Last Name:</th>
<td colspan="3" align="center"><input type="text" name="clname" width="300%"></td>
<td id="lnErr" style="visibility:hidden">Last Name Required!</td>
</tr>
<tr align="center">
<th align="center">Client First Name:</th>
<td colspan="3" align="center"><input type="text" name="cfname" width="300%"></td>
<td id="fnErr" style="visibility:hidden">First Name Required!</td>
</tr>
<tr align="center">
<th align="center">Client Telephone:</th>
<td colspan="3" align="center"><input type="text" name="ctel" width="300%"></td>
<td id="telErr" style="visibility:hidden">Telephone Required (without hyphins '-')!</td>
</tr>
<tr align="center">
<th>Cases:</th>
<td align="center">Rape<input type="checkbox" name="caseType[]" value="rape"></td>
<td align="center">Drug Accusition<input type="checkbox" name="caseType[]" value="Drug Accusition"></td>
<td align="center">Assult<input type="checkbox" name="caseType[]" value="Assult"></td>
<td id="caseErr" style="visibility:hidden">At least one required!</td>
</tr>
</table>
<input type="submit" value="Add Client">
</form>
SOLUTION:
j'ai réussi à trouver une solution au problème par googler ...
d'abord le nom d'eac h case à cocher ont []
Rape<input type="checkbox" name="caseType[]" value="rape">
Drug Accusition<input type="checkbox" name="caseType[]" value="Drug Accusition">
Assult<input type="checkbox" name="caseType[]" value="Assult">
puis, dans le javascript j'ajouté cette partie:
var t=0;
var c=addClients['caseType[]'];
for(var i=0;i<c.length;i++)
c[i].checked?t++:null;
où addClients
est le nom de ma forme.
puis j'ai essayé le PHP que j'ai attaché, et il a énuméré les valeurs comme il se doit.
Peut-on voir le formulaire HTML? – webbiedave
@webbiedave: J'ai ajouté le formulaire à la question. – sikas