使用JavaScript添加复选框值PHP,MySQL和警告框

时间:2015-02-07 18:28:50

标签: javascript php jquery html mysql

以下是我的表结构: -

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

表名是“登录”。我的代码如下: -

<!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的总和”。请帮我提供必要的代码。

1 个答案:

答案 0 :(得分:0)

如果您使用纯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)" />'; 

这样,您可以将Marks的值设置为复选框的值属性。