收集数组中的值并将其传递给php

时间:2018-11-18 21:33:18

标签: javascript

我有这些复选框,其中包含我想存储并传递给php的值。 我的函数假定检查每个对象,并评估是否已检查您的对象,然后将它们从数组中推入/删除:

function isChecked(){
  let distributionEL = document.querySelector("[name='distribution']");
  console.log(distributionEL.value);
  sendingLists.forEach(function(list) {
    let sendSMSArr = distributionEL.value.split(',');
    if(list.checked == true){
      sendSMSArr.push(list.value);
    } else {
      let index = sendSMSArr.indexOf(list.value);
      if (index > -1) {
        sendSMSArr.splice(index, 1);
    }
  distributionEL.value = sendSMSArr.join(',');
 });
}

现在发生的是该函数重复数组的现有元素,然后像这样添加新值。假设我的数组如下所示:

sendSMSarr = ['1','2']

,然后在执行if时将其推到新值'3':

sendSMSarr = ['1','2','1','2','3']

我想存储这些值而不重复。

关于此处的其他一些数据: isChecked()在页面加载后和每次搜索后调用。您可以在搜索栏中搜索这些复选框。每次搜索后,将整个div清空(div.innerHTML = ''),然后填充结果。 然后:

  

//每次搜索后调用func

     

listR.addEventListener('change',function(){     isChecked();   })

distributionEL是一个隐藏的输入,我用于将所需的值存储在字符串中,以便将其传递给php,然后转换为数组agian,以便我可以遍历它。

发送列表是我页面(document.querySelector(.checkboxes))

中的所有复选框

设法解决问题:

每个复选框在选中时都会添加,在未单独选中时会删除,但是当我一起选中其中几个而不取消选中其他复选框时,它就会重复出现。显然,我希望能够做到这一点而无需取消选中

0 个答案:

没有答案