测试是否至少选中了两个复选框,然后将值插入数据库

时间:2013-05-22 09:38:41

标签: php javascript html mysql wampserver

我使用的是html,php,javascript,mysql和wampserver。

我有3个复选框,用户应该最多检查两个,然后我将两个选项插入我的数据库。

我已声明3个具有不同名称属性的复选框(不同=>因为我在我的php代码中声明了3个变量)

但是当我想使用javascript插入验证时(以验证是否只选中了最多2个复选框) 我发现我应该声明具有相同属性名称

的3个复选框

我的问题是:

要将用户选择插入我的数据库,我应该声明3个变量,这样就有3个不同的名称属性,

并验证复选框:2至少要检查我必须使用相同名称attribue

还有其他我不知道的解决方案吗?

HTML code:

<input type="checkbox"  value="workshop1Day1" id="workshop" name="workshop1Day1" />Workshop I
<input type="checkbox" value="workshop2Day1"  name="workshop2Day1" />Workshop II

<input type="checkbox" value="workshop3Day1"  name="workshop3Day1" />Workshop III

php代码

 $workshop1Day1 = $_POST["workshop1Day1"];
 $workshop2Day1 = $_POST["workshop2Day1"];
 $workshop3Day1 = $_POST["workshop3Day1"];

 $requete = "INSERT INTO Participant (workshop1Day1,workshop2Day1,workshop3Day1)
                  VALUES ('$workshop1Day1', '$workshop2Day1', '$workshop3Day1')";

我找到的java脚本(对name属性使用相同的值

Checkbox Validations

谢谢

1 个答案:

答案 0 :(得分:3)

这可能对您有所帮助:

<script>
function checkifclicked()
{

    //alert($('input[name=cb]').val());
    var checkboxs=document.getElementsByName("cb");
    var okay=false;
    var count = 0;
    for(var i=0,l=checkboxs.length;i<l;i++)
    {
        if(checkboxs[i].checked)
        {

        count++;
        }
    }
    if(count > 1){
     okay=true;    
    }
    if(!okay){

        alert("Please check at least two checkbox");
        return false;
    }

}
</script>


<form name="send_email" id="send_email" action="send_email.php" onSubmit="return checkifclicked()" method="post">

<div id="checkbox">    
<input type="checkbox" id="1" name="cb"/><br/>
<input type="checkbox" id="2" name="cb"/><br/>
<input type="checkbox" id="3" name="cb"/><br/>
<input type="submit" value="Submit"/>
</div>


</form>

Codepad Demo>>