如果选中复选框,则刷新表单

时间:2014-02-24 00:47:55

标签: php jquery checkbox

我希望有人可以帮助我。我之前尝试过询问,但似乎没有人得到我想要的东西,所以要重新改写它并再试一次。

我有一个非常简单的表单,它有一个名称列表的下拉列表,一个复选框和一个提交按钮。

从我的数据库中提取名称列表。该复选框最初未选中。我想要发生的是当我选中复选框时,名称列表会更新以包含其他名称。

我尝试过:

    1. <input type="checkbox" name="active" value="Yes" onclick="$('#myform').submit()">
    2. <input type="checkbox" name="active" value="Yes" onclick="this.form.submit()">
    3. <input type="checkbox" name="active" value="1" onclick="$('#myform').submit()">
    4. <input type="checkbox" name="active" value="Yes" onclick="$('#myform').submit();">
    5. <input type="checkbox" name="active" value="Yes" onclick="this.form.submit();">
    6. <input type="checkbox" name="active" value="1" onclick="$('#myform').submit();">

这些都不会刷新表单。我不知道这是否会改变,但我的提交按钮有一个提交ID。我目前对jQuery或javascript不太满意,所以我不知道如何让它按照我想要的方式运行。我使用php作为页面的基本编码,使用mysql进行查询。我在sql查询中有条件语句:

    if ($_POST['active'] == 'Yes') {
      echo "query holds all";   
    } else {    
      echo "query holds some";
    }

如果我手动更改输出,此消息会正确显示,但是当我选中该框时,它似乎没有做任何事情。还有另一种方法可以让它发挥作用吗?

3 个答案:

答案 0 :(得分:0)

删除复选框上的所有内联onclick事件

$(document).on('click', '[name="active"]', function() {
    if($(this).is(":checked")) {
       $('#myform').submit();
    }
});

答案 1 :(得分:0)

<input type="checkbox" name="active" id="chk" value="Yes" onclick="return check()">

<script type="text/javascript">
function check()

{
    //alert(document.getElementById("chk").checked);
    if(document.getElementById("chk").checked == true)
    {
        window.location.reload();
    }

}
</script>

答案 2 :(得分:-1)

<input type="checkbox" name="active" value="Yes" 
onchange="this.form.submit();">

唯一的问题是,通过重新加载页面,检查将会消失。

你需要做的是给出“Checked”并创建一个变量值并将其放入操作中,如:

<input type="checkbox" name="active" id="active" value="checked" 
<?php echo  $active_flag;?> onchange="this.form.submit();" />

,其中

$active_flag= $_POST['active_flag'];