在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> Created </strong>
<input type="checkbox" value="modified" name="today_check"><strong> Modified </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中的字符串中获取多个选中的复选框值的主要内容,如果未能解决你的问题,请参考以下文章
Zapier 中的 Javascript:由“-”拆分为多个输出
PHP / Javascript:告诉同一网络中的两台计算机
如何从PHP和Javascript中的字符串中删除所有空格[重复]