【问题标题】:Refresh form if a checkbox is checked如果选中复选框,则刷新表单
【发布时间】:2014-02-24 00:47:54
【问题描述】:

我希望有人可以在这里帮助我。我之前尝试过询问,但似乎没有人得到我想要的,所以我想改写一下,然后再试一次。

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

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

我尝试过的:

    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";
    }

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

【问题讨论】:

    标签: php jquery checkbox


    【解决方案1】:

    去掉复选框上的所有内联 onclick 事件

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

    【讨论】:

    • 好吧,我试过了,甚至添加了一个警报,看看它是否到达这里,不幸的是它不会改变我的 php.ini 中的 sql 语句。警报弹出,但我没有显示第二条消息。它仍然显示“查询持有一些”。
    • 作为附加说明,我将所有内容都从页面中拉出,看看是否有什么东西弄乱了它,但似乎没有任何影响。当我选中该框时,它仍然对表单没有任何作用。我无法刷新页面,因为这将取消选中该框是否有另一种方法可以做到这一点?可能是另一个下拉菜单或单选按钮?
    【解决方案2】:
    <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>
    

    【讨论】:

    • 我正在阅读此内容,但不会重新加载整个页面,导致复选框再次未选中?反正我回家后会试试这个,然后告诉你。
    • 确定.. 当您点击复选框时页面被重新加载,当您取消选中时页面没有重新加载。
    【解决方案3】:
    <input type="checkbox" name="active" value="Yes" 
    onchange="this.form.submit();">
    

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

    您需要做的是给出“已检查”并创建一个变量值并将其放入操作中,例如:

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

    在哪里

    $active_flag= $_POST['active_flag'];
    

    【讨论】:

      猜你喜欢
      • 2020-05-06
      • 2016-01-11
      • 2016-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多