php 复选框 未选,关于php:具有选中和未选中值的多个Checkboxes数组

所以我有这行代码,将以一种形式重复不同的时间。

!checked

!unchecked

!checked

!unchecked

!checked表示复选框已选中,!unchecked表示复选框未选中。

我如何创建一个php数组来按以下顺序获取选中和未选中复选框的值:

array( 0 => checked, 1 => unchecked, 2 => checked, 3 => unchecked );

暂时我可以使用$ _POST [" checkbox"]来获得检查值,但是我无法获得未经检查的值。

您尝试了什么?遇到了什么错误?

亚历克斯stackoverflow.com/a/20782579/1607528

首先,您需要在复选框中输入一个值:

!checked

否则,您将无法真正区分您的复选框。

然后:如果您的复选框已选中,则将返回一个值;如果未选中,则将被忽略。您将不会得到NULL,FALSE或其他值。它根本不会通过POST / GET传输到您的php脚本,就像它不在您的HTML代码中一样。这涵盖了主题:是否仅在选中数据后才发布数据?

如果您知道周围有多少个复选框,以及它们的名称-没问题,或者-但如果您不知道,则需要找到解决方法。如果您告诉我们您的复选框的性质是什么,我们可以帮助您找到量身定制的解决方案。

如果您使用的是像PHP这样的服务器端语言,那么比使用隐藏字段提供默认值或编写javascript的方法要简单得多(如果用户的设备/浏览器不支持该方法,则两者都会失败)。

此方法不返回未选中的项目,但它专门标识已选中的项目。否则,如果所有复选框都具有相同的值,则您得到的只是一个,两个或三个重复的值,而不知道选中了哪个项目。但是,假设使用上述方法检查了choice2,那么很容易确定没有检查项目1和3。

解决了:

表格声明...

...

提交时:

function set_hidden_value()

{

var checkstring ="";

for (var i=0; i < $('#checkbox').length; i++)

{

if ($('#checkbox')[i].checked)

{

checkstring = checkstring +"1";

}

else

{

checkstring = checkstring +"0";

}

}

$('#arrayofchecks').val(checkstring);

结果是一个字符串,其值已选中和未选中(1和0)...

就我而言,我使用ajax拦截提交并在此处执行set_hidden_??value ...

您可以使用jquery和ajax。在您的Submit事件中,从表单获取所有值并通过ajax提交。您可以像这样在jquery中获得未经检查的值:

$("input:checkbox:not(:checked)")

要么

if ($('#idOfYourCheckBox:checked').length > 0) {

//its checked

}

else {

//not checked

}

这将仅打印选中的字段,因为未选中的字段不会发送到服务器。

您将必须执行一些javascript和隐藏字段技巧。

在这里看看

发布未选中的复选框

!checked

!unchecked

!checked

!sdsk

foreach($_POST['checkbox'] as $key => $value){

$checkbox[$key] = 'checked';

}

print_r($checkbox); // your new array

该示例不起作用。 它仅显示选中的复选框的值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值