Javascript 使用内爆和ajax插入复选框值

Javascript 使用内爆和ajax插入复选框值,javascript,php,jquery,ajax,checkbox,Javascript,Php,Jquery,Ajax,Checkbox,我想插入我的复选框值,我不知道如何使用ajax获取所有值,并使用内爆将它们插入一行 //这是我获取数据的javascript, 函数saveData(){ var modsubc=$('#modalsubject').val(); var modsect=$('#modalsection').val(); var modday=$('#modalday').val(); var modstart=$('#modalstarttime').val(); var modend=$('#modale

我想插入我的复选框值,我不知道如何使用ajax获取所有值,并使用内爆将它们插入一行

//这是我获取数据的javascript,
函数saveData(){
var modsubc=$('#modalsubject').val();
var modsect=$('#modalsection').val();
var modday=$('#modalday').val();
var modstart=$('#modalstarttime').val();
var modend=$('#modalendtime').val();
var moduser=$('#userID').val();
$.ajax({
类型:“POST”,
url:“modal.funcs.php?p=add”,
数据:“subc=“+modsubc+”§=“+modsect+”&day=“+modday+”&start=“+modstart+”&end=“+modend+”&user=“+moduser
});
}

星期一
星期二
星期三
星期四
星期五

以下是如何向服务器发送列表

你可以爆炸一天来获得一系列的天

要添加更多项,请添加逗号和更多键值:

 data: { day: modday.join(","),
         subj:$('#modalsubject').val() // no comma on the last
       }
$(函数(){
$(“#保存”)。在(“单击”,函数(){
saveData();
});
});
函数saveData(){
var modday=[];
$('.modalday:checked')。每个(函数(){
modday.push(这个值);
});
console.log(modday);
$.ajax({
类型:“POST”,
url:“modal.funcs.php?p=add”,
数据:{day:modday.join(“,”)}
});
}

星期一
星期二
星期三
星期四
星期五

Save
我自己也尝试过,我认为大多数操作都可以在saveData函数中进行,而不是在PHP中

我假设您将把id改为类,因为id应该是唯一的:

<input type="checkbox" class="modalday" name="modalday[]" value="M">Monday &nbsp;&nbsp;
然后,在modal.funcs.php中,您只需从$\u请求变量获取值并将其传递给函数:

<?php

$page = $_REQUEST['p'];

if ($page == 'add') {

  $subj = $_REQUEST['subj'];
  $sect = $_REQUEST['sect']; 
  $day = $_REQUEST['day']; 
  $strTime = $_REQUEST['start'];
  $endTime = $_REQUEST['end'];
  $user_id = $_REQUEST['user'];

  $auth_user->createSchedule($subj,$sect,$day,$strTime,$endTime,$user_id);
  $schedRow = $auth_user->readSchedule();

} else if ($page=='edit') {

}

id必须是唯一的,所以var modday=$('#modalday').val();这是行不通的。将id更改为class=“modalday”并循环从
$(“.modalday:checked”)
返回的数组,然后如何使用它获取所有数据并使用内爆压缩它?请参阅对我的注释的修改。预期产量是多少?您可以将“M,T,Th,F”返回到PHP,例如,我专门按照您的说明操作,但仍然是一样的,您确定我可以这样做吗?我对我的代码不是很有信心,我期待着一些剧烈的变化,但如果这样做会很好,我认为我仍然缺少一些想法,但他需要键值对,这样他就可以在PHPNow中根据键提取值,他不需要内爆任何东西。复选框到达时已经爆炸了。他如何在没有键的情况下对值执行后期操作。albert,enistin将作为值发送,但应用程序如何知道名称和姓氏。如果它走了那就太好了,firstName=albert&lastName=eistinI没有你的评论。如果他将
,“user”:+$(“#userID”).val()
添加到我的代码中,他将在php中获得$_POST[“user”]——他当前只内爆复选框。如果他没有预处理它们,那么名称-值对当前将是
modalday[]=T,modalday[]=W,modalday[]=F
。[]的想法是向服务器交付一个数组,但由于他使用的是AJAX,并且想要内爆,那么名称值的用例在哪里呢?
  var moddayAll = document.getElementsByClassName('modalday');

  var modday = [];

  for (let i = 0; i < moddayAll.length; i++) {
    if (moddayAll[i].checked) {
      modday.push(moddayAll[i].value);
    }
  }
  var add = 'add';

  $.post("modal.funcs.php", {p:add, subj:modsubj, sect:modsect, day:modday.join(","), start:modstart, end:modend, user:moduser},
    function( data ) {
      // do whatever you want with data returned from modal.funcs.php
    }
  );
<?php

$page = $_REQUEST['p'];

if ($page == 'add') {

  $subj = $_REQUEST['subj'];
  $sect = $_REQUEST['sect']; 
  $day = $_REQUEST['day']; 
  $strTime = $_REQUEST['start'];
  $endTime = $_REQUEST['end'];
  $user_id = $_REQUEST['user'];

  $auth_user->createSchedule($subj,$sect,$day,$strTime,$endTime,$user_id);
  $schedRow = $auth_user->readSchedule();

} else if ($page=='edit') {

}