在javascript和PHP中的字符串中获取多个选中的复选框值

Posted

技术标签:

【中文标题】在javascript和PHP中的字符串中获取多个选中的复选框值【英文标题】:Getting multiple selected checkbox values in a string in javascript and 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()" />';

【问题讨论】:

【参考方案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”部分内的部分中(在标题上链接您的徽章),所以我只看到您的帖子,而不是整个答案列表。如果您认为有问题,请随意标记或评论。

以上是关于在javascript和PHP中的字符串中获取多个选中的复选框值的主要内容,如果未能解决你的问题,请参考以下文章

PHP 如何读取Javascript 对象的值?

Zapier 中的 Javascript:由“-”拆分为多个输出

PHP / Javascript:告诉同一网络中的两台计算机

如何从PHP和Javascript中的字符串中删除所有空格[重复]

如何使用HTML中的Javascript从对象获取多个输出?

如何从 PHP 中的字符串中删除意第绪语评分