【问题标题】:Getting multiple selected checkbox values in a string in javascript and PHP在javascript和PHP中的字符串中获取多个选中的复选框值
【发布时间】:2013-12-02 19:48:12
【问题描述】:

我在数据库表中有位置名称和位置 ID。使用 foreach 循环,我正在 PHP 中的复选框中打印值。我有一个触发 javascript 的提交按钮。我希望用户在 javascript 变量中选择所有以逗号分隔的复选框值。我该怎么做?

    <!-- Javascript -->
<script>
        function getLoc(){
                var all_location_id = document.getElementByName("location[]").value;
                     var str = <!-- Here I want the selected checkbox values, eg: 1, 4, 6 -->

            }
        <script>

foreach($cityrows as $cityrow){
echo '<input type="checkbox" name="location[]" value="'.$cityrow['location_id'].'" />'.$cityrow['location'];
echo '<br>';
}
echo '<input name="searchDonor" type="button" class="button" value="Search Donor" onclick="getLoc()" />';

【问题讨论】:

    标签: javascript php ajax forms checkbox


    【解决方案1】:

    这段代码对我来说很好,在这里我用 ~ 符号将数组转换为字符串

        <input type="checkbox" value="created" name="today_check"><strong>&nbsp;Created&nbsp;&nbsp;</strong>
        <input type="checkbox" value="modified" name="today_check"><strong>&nbsp;Modified&nbsp;</strong>    
     <a class="get_tody_btn">Submit</a>
    
    <script type="text/javascript">
            $('.get_tody_btn').click(function(){
                var ck_string = "";
                $.each($("input[name='today_check']:checked"), function(){  
                    ck_string += "~"+$(this).val();  
                });
                if (ck_string ){
                    ck_string = ck_string .substring(1);
                }else{
                    alert('Please choose atleast one value.');
                }
    
    
            });
        </script>
    

    【讨论】:

      【解决方案2】:

      在某些情况下,一次处理每个选定的项目可能更有意义。

      换句话说,为每个选定项进行单独的服务器调用,传递选定项的值。在某些情况下,需要将列表作为一个整体进行处理,但在某些情况下则不需要。

      我需要处理选定人员的列表,然后将查询结果显示在该人员现有数据下方的现有页面上。我最初想将整个列表传递给服务器,解析列表,然后将所有患者的数据传回。然后,我需要解析返回的数据并将其插入到页面中每个适当的位置。结果证明,一次向一个人发送数据请求要容易得多。此处描述了用于获取所选项目的 Javascript:check if checkbox is checked javascript,此处描述了相同的 jQuery:How to check whether a checkbox is checked in jQuery?

      【讨论】:

        【解决方案3】:

        如果你使用的是 jQuery,你可以将复选框放在一个表单中,然后使用类似这样的东西:

        var formData = jQuery("#" + formId).serialize();
        
        $.ajax({
              type: "POST",
              url: url,
              data: formData,
              success: success
        }); 
        

        【讨论】:

          【解决方案4】:
          var fav = [];
          $.each($("input[name='name']:checked"), function(){            
              fav.push($(this).val());
          });
          

          它会给你以逗号分隔的值

          【讨论】:

            【解决方案5】:
            var checkboxes = document.getElementsByName('location[]');
            var vals = "";
            for (var i=0, n=checkboxes.length;i<n;i++) 
            {
                if (checkboxes[i].checked) 
                {
                    vals += ","+checkboxes[i].value;
                }
            }
            if (vals) vals = vals.substring(1);
            

            【讨论】:

            • 在上面的代码中完美地工作。通过在最后一行将 'location' 更改为 'location[]' 并将 val 更改为 vals。 :-)
            • 有什么办法可以重新设置,选择的值
            【解决方案6】:

            这是在不使用“if”语句的情况下获取all_location_id 中所有选中复选框的变体

            var all_location_id = document.querySelectorAll('input[name="location[]"]:checked');
            
            var aIds = [];
            
            for(var x = 0, l = all_location_id.length; x < l;  x++)
            {
                aIds.push(all_location_id[x].value);
            }
            
            var str = aIds.join(', ');
            
            console.log(str);
            

            【讨论】:

            • 请在您的帖子中添加一些解释。
            • 好的,做到了。对不起,我是新来的。是否只有在答案未标记为“最佳答案”时才必须添加解释?
            • 我不会说“强制性”,但为了提供高质量的问题,这是一个很好的做法。这个网站关心它的质量。我对您发表评论是因为您的帖子被投票为关闭,但它不同意关闭。请阅读this
            • 啊好吧,我只是想知道为什么你只是评论我而不是“最佳答案”,也许有一条我还不知道的规则。无论如何,非常感谢。我会注意在我的回答中提供更多质量。
            • 你是对的。接受的答案也没有得到完美的模式。但发生这种情况是因为我注意到您的问题,因为有人将其 标记 为“低质量”。这会使您的问题列在“review”部分内的部分中(在标题上链接您的徽章),所以我只看到您的帖子,而不是整个答案列表。如果您认为有问题,请随意标记或评论。
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-09-11
            • 2017-03-09
            • 1970-01-01
            • 2014-12-01
            • 2015-10-05
            相关资源
            最近更新 更多