我正在编写一个表格,可以选择多个复选框并保存到MySQL数据库中。但是,我现在想限制用户可以使用javascript选择的复选框数量,并且遇到了一些麻烦。
似乎导入功能仍然有效,每个复选框都需要具有相同的名称,因此它们可以被识别和内爆,但是为了使Javascript功能起作用,每个名称需要不同,以便它们可以是分化。
任何建议都会感激不尽!
这是我一直在玩的代码。
Javascript功能:
<?php $calc = mysql_query($query) or die(mysql_error()); ?>
<SCRIPT LANGUAGE="javascript">
function KeepCount()
{
var NewCount = 0
<?php while($count_row = mysql_fetch_array($calc)){
echo "
if (document.import1.checkbox".$count_row['id'].".checked)
{NewCount = NewCount + 1}
";
} ?>
if (NewCount == 6)
{
alert('You can select up to 5 competitors. If you wish to import more you will need to add more judges.')
document.import1; return false;
}
}
</SCRIPT>
形式:
<form action="import_process.php" method="post" name="import1" id="import1">
<input name="import" type="submit" id="import" value="Import">
<table>
<tr>
<td> </td>
<td>Name</td>
<td>Gender</td>
</tr>
<?php $counter = 1;
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
echo "<tr bgcolor=white>";
echo "<td align=\"center\">
<input name=\"checkbox".$row['id']."\" type=\"checkbox\" id=\"checkbox[]\" value=\"".$row['id']."\" onClick=\"return KeepCount()\"></td>";
}
echo "<td>".$row['name']."</td>";
echo "<td>".$row['gender']."</td>";
echo "</tr>";
$counter++;
}
?>
</table>
</form>
import_process.php:
if(isset($_POST['checkbox'])){
$checkbox = $_POST['checkbox'];
$id = "('" . implode( "','", $checkbox ) . "');" ;
$sql="
INSERT INTO..."
答案 0 :(得分:0)
理解你的代码有点困难,但我觉得你对名字的区别感到困惑。每个复选框的ID必须不同,名称必须相同:
<input id=\"checkbox".$row['id']."\" type=\"checkbox\" name=\"checkbox[]\" value=\"".$row['id']."\" onClick=\"return KeepCount()\"></td>";
name-attribute是一个,需要[],所以你得到数组$_POST['checkbox']
中的结果。
第二个是,你的函数KeepCount似乎总是检查相同的复选框(或者我真的不明白它是如何工作的)因为无论$count_row['id']
是什么,它在页面被解析时设置一次所以javascript功能无法真正计算任何东西。
所以改变复选框创建如下:
<input id=\"checkbox".$row['id']."\" type=\"checkbox\" name=\"checkbox[]\" value=\"".$row['id']."\" onClick=\"return KeepCount(this)\"></td>";
和这样的javascript
var count = 0;
function KeepCount(it) {
if (it.checked) {
count = count + 1;
} else {
count = count - 1;
}
if (count == 6) {
alert('You can
etc.
这应该有效。
顺便说一下:value = row ['id']似乎也是胡说八道。