首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将复选框数组插入数据库

将复选框数组插入数据库
EN

Stack Overflow用户
提问于 2017-02-06 22:03:25
回答 2查看 42关注 0票数 0

我有多个要插入数据库的复选框。

我有一段代码,其中im试图通过数组获取所有的复选框值,但是im在数据库中插入的内容是空的,可能是im错误地使用了数组。

复选框

代码语言:javascript
复制
    <label class="checkbox-inline"><input type="checkbox" class="modalday" name="modalday[]" value="M">Monday
&nbsp;&nbsp;</label>
</div>
<div class="checkbox">
   <label class="checkbox-inline"><input type="checkbox" class="modalday" name="modalday[]" value="T">Tuesday
   &nbsp;&nbsp;</label> 
</div>
<div class="checkbox">
   <label class="checkbox-inline"><input type="checkbox" class="modalday" name="modalday[]" value="W">Wednesday
   &nbsp;&nbsp;</label>
</div>
<div class="checkbox">
   <label class="checkbox-inline"><input type="checkbox" class="modalday" name="modalday[]" value="Th">Thursday
   &nbsp;&nbsp;</label>
</div>
<div class="checkbox">
<label class="checkbox-inline"><input type="checkbox" class="modalday" name="modalday[]" value="F">Friday
&nbsp;&nbsp;</label>

这就是我获取数据的方式

代码语言:javascript
复制
 function saveData(){
                      var modsubj = $('#modalsubject').val();
                      var modsect = $('#modalsection').val();
                      var modstart = $('#modalstarttime').val();
                      var modend = $('#modalendtime').val();
                      var moduser = $('#userID').val();
                      var modday = new Array();

                      $('.modalday input:checked').each(function() {
                        modday.push($(this).attr('name'));
                      });

                      $.ajax({
                        type: "POST",
                        url: "modal.funcs.php?p=add",
                        data: "subj="+modsubj+"&sect="+modsect+"&day="+modday+"&start="+modstart+"&end="+modend+"&user="+moduser
                      });

                    } 

这就是我处理从ajax获取的数据的地方

代码语言:javascript
复制
$page = isset($_GET['p'])?$_GET['p']:'';
if($page=='add'){

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



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

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

}

我认为问题出在我如何从数组中获取数据,但我不确定如何正确操作,请帮助我。

EN

回答 2

Stack Overflow用户

发布于 2017-02-06 22:07:23

我认为这就是你的代码错误的地方:

代码语言:javascript
复制
$('.modalday input:checked').each(function() {
   modday.push($(this).attr('name'));
});

您应该获取复选框的值,而不是元素的名称。所以要这样做:

代码语言:javascript
复制
$('.modalday input:checked').each(function() {
   modday.push($(this).val());
});

或者甚至将“name”更改为“value”:

代码语言:javascript
复制
$('.modalday input:checked').each(function() {
    modday.push($(this).attr('value'));
});

然后,为了将数据发送到PHP post,字符串应如下所示:

代码语言:javascript
复制
modalday[]=T&modalday[]=W&modalday[]=Th

因此,要么使用循环来创建字符串,要么直接使用$(form).serialize(),如下所示:

将复选框包含在表单中:

代码语言:javascript
复制
<form id="checkboxform">
<!-- your check box codes here -->
</form>

您的jquery代码:

代码语言:javascript
复制
var params = $('#checkboxform').serialize();

$.ajax({
   type: "POST",
   url: "modal.funcs.php?p=add",
   data: params,
});

请看我的Js小提琴示例代码:https://jsfiddle.net/0y84tws2/

票数 0
EN

Stack Overflow用户

发布于 2017-02-06 23:52:58

我找到了一种更简单的方法,

在我的jquery中,我将前面的代码更改为

代码语言:javascript
复制
var modday = [];

                        $('.modalday').each(function() {
                          if($(this).is(":checked")){
                            modday.push($(this).val());
                          }
                        });

                        modday = modday.toString();

                        $.ajax({
                          type: "POST",
                          url: "modal.funcs.php?p=add",
                          data: "subj="+modsubj+"&sect="+modsect+"&day="+modday+"&start="+modstart+"&end="+modend+"&user="+moduser
                        });

在我的php中,我就是这样取值的,非常简单。

代码语言:javascript
复制
$page = isset($_GET['p'])?$_GET['p']:'';
if($page=='add'){

    if(isset($_POST['day'])){
        $subj = $_POST['subj'];
        $sect = $_POST['sect']; 
        $day = $_POST['day'];
        $strTime = $_POST['start'];
        $endTime = $_POST['end'];
        $user_id = $_POST['user'];

        $auth_user->createSchedule($subj,$sect,$day,$strTime,$endTime,$user_id);
        $schedRow = $auth_user->readSchedule();
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42069664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档