使用JavaScript添加复选框值PHP、MySQL和alertbox


Add the check box values PHP, MySQL and alertbox using JavaScript

以下是我的表结构:-

Name    Marks
A   12
B   41
C   13
D   24
E   91
F   89
G   87

表名为"login"。我的代码如下:-

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<form name='checkbox1[]' method="post" action="student_slected.php" >       
<label class="cb1" for="checkbox1"> </label>
<input type="hidden" name="checkbox1[]"  id="check" value="null">
<b><h3>Select students :-</h3></b>
<?php
    mysql_connect("localhost", "root", "root1") or die (mysql_error ());
    mysql_select_db("my_db") or die(mysql_error());
    $strSQL = "SELECT Name FROM login ORDER BY Name";
    $rs = mysql_query($strSQL);
    while($row = mysql_fetch_array($rs)) 
    {
    $man = $row['Name'];
    echo '<input type="checkbox" value="'.$man.'" name="checkbox1[]" />'; 
    echo $man;
    echo "<br>";
    }
    mysql_close();
    ?>
</select>
<input type="submit" value="SUBMIT" style= "height:40px; width:150px; font-weight: bold; font-size:10;">
</form>
</body>
</html>

现在我想要一个使用JavaScript的警告框,当用户检查名称列表时,标记的总和不应超过100。即,如果用户选择A、B、D和e,则总和超过100,则应显示一条警告消息,说明"您不能超过100分的总和"。请帮我输入必要的代码。

如果您使用纯JavaScript而没有任何附加库,那么您应该将onchange事件放在复选框上。这将激活一个处理检查和取消检查事件的函数。此外,您应该添加一些内容,帮助JavaScript代码检测在计算总和时应该考虑的复选框。在这里,我放置了一个名为chkbox:的类

<input type="checkbox" value = "50" class="chkbox" onchange="jsFunction()" />

现在,对于您的JavaScript函数:

function jsFunction(element)
{
    var sum = 0,i;
    var elements = document.getElementsByClassName('chkbox');
    for(i = 0;i<elements.length;i++)
    {
        if(elements[i].checked)
        {
            sum += parseInt(elements[i].value);
        }
    }
    if(sum > 100)
    {
        alert("100 exceeded");
        element.checked = false;
    }
}

此代码只获取具有适当类的所有元素,检查名为checked的元素属性是否为true,以及是否将其值添加到总和中。

为了使Marks数据可用,您应该更改SQL查询:

$strSQL = "SELECT Name,Marks FROM login ORDER BY Name";

在php中创建复选框时,应将复选框值设置为当前行的Marks值:

echo '<input type="checkbox" value="'.$row['Marks'].'" class="chkbox"  name="checkbox1[]" onchange="jsFunction(this)" />'; 

通过这种方式,可以将"标记"的值设置为复选框的值属性。