Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript在PHP中交换复选框_Javascript_Php_Arrays_Checkbox - Fatal编程技术网

使用javascript在PHP中交换复选框

使用javascript在PHP中交换复选框,javascript,php,arrays,checkbox,Javascript,Php,Arrays,Checkbox,尝试从超链接使用javascript在PHP中翻转两个复选框数组的值。我面临的问题是php希望复选框数组使用[],而javascript不希望 这是我的代码…您建议使用什么代码来创建checkbox2=checkbox1和checkbox1=checkbox2中的选中项 <a id='swap' href=\"javascript: swapContacts();\">Swap</a> <br> <input class='c_con

尝试从超链接使用javascript在PHP中翻转两个复选框数组的值。我面临的问题是php希望复选框数组使用[],而javascript不希望

这是我的代码…您建议使用什么代码来创建checkbox2=checkbox1和checkbox1=checkbox2中的选中项

<a id='swap' href=\"javascript: swapContacts();\">Swap</a>
<br>
<input class='c_contactmethods' type='checkbox' name='checkbox1[]' value='1'>Phone<br>
<input class='c_contactmethods' type='checkbox' name='checkbox1[]' value='2'>Email<br>
<input class='c_contactmethods' type='checkbox' name='checkbox1[]' value='3'>Text<br>
<input class='c_contactmethods' type='checkbox' name='checkbox1[]' value='4'>Mail<br>
<br>
<input class='c_co_contactmethods' type='checkbox' name='checkbox2[]' value='1'>Phone<br>
<input class='c_co_contactmethods' type='checkbox' name='checkbox2[]' value='2'>Email<br>
<input class='c_co_contactmethods' type='checkbox' name='checkbox2[]' value='3'>Text<br>
<input class='c_co_contactmethods' type='checkbox' name='checkbox2[]' value='4'>Mail<br>


电话
电子邮件
文本
邮件

电话
电子邮件
文本
邮件
我需要javascript中swapContacts()代码的帮助。以下是我尝试使用的内容:

var i=0;    
for (i=0;i<document.form1.checkbox1.length;i++){
    $tempstr = document.form1.checkbox1[i].value;
    document.form1.checkbox1[i].value= document.form1.checkbox2[i].value;
    document.form1.checkbox2[i].value= $tempstr;
}
var i=0;
对于(i=0;i之类的东西

const buttonSwap=document.getElementById('swap'))
,checkbox1n=document.querySelectorAll('input[name=“checkbox1[]”)
,checkbox2n=document.querySelectorAll('input[name=“checkbox2[]”)
;
按钮swap.onclick=()=>
{
设c1=[…checkbox1n].map(cb=>cb.checked)
设c2=[…checkbox2n].map(cb=>cb.checked)
checkbox1n.forEach((cb,i)=>cb.checked=c2[i])
checkbox2n.forEach((cb,i)=>cb.checked=c1[i])
}
交换

电话
电子邮件
文本
邮件

电话
电子邮件
文本

邮件
您可以遍历项目,检查
set1
set2
是否检查了当前索引的项目

如果未选中,则选中另一个。反之亦然

函数swapContacts(){
设set1=document.querySelectorAll('input[name=“checkbox1[]”);
设set2=document.querySelectorAll('input[name=“checkbox2[]”);
对于(i=0;i
函数swapContacts(){
让chks1=document.queryselectoral(“输入[name='checkbox1[]']”);
让chks2=document.queryselectoral(“输入[name='checkbox2[]']”);
让tmp
for(设i=0;i


电话
电子邮件
文本
邮件

电话
电子邮件
文本

Mail
您可以分享您尝试过的代码并解释您遇到的问题吗?按照您的要求添加了javascript代码。我知道我是个小丑,只需要您发布javascript代码,我可以使用它来交换checkbox1数组和checkbox2数组中的选中框。这需要您单击两次交换,然后单击触发器与表单上的某些其他字段不同步。这是我最接近于实现此功能的一次。是否有建议让它在第一次单击时进行交换?@maybeahackbutitworks我不建议在此类操作中使用href链接。您没有指出这是在表单中发生的,这是一个重要信息,我将激怒了我的代码使之成功work@maybeahackbutitworks您还可以考虑在代码中添加一些<代码> <代码>,以点击文本来更改您的复选框(请参阅我的代码),获胜者、胜利者、鸡宴。非常感谢您。