2017-02-06 5 views
0

У меня есть несколько флажков, которые я хочу вставить в мою базу данных.Вставить checkbox массив в базу данных

у меня есть этот код, где им пытается принять все значения флажка через массив, но то, что им вставка в базе данных является пустыми, возможно, им принимает массив со неправильным путем

флажков

<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> 

это, как я взять данные

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

$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') { 

} 

я думаю, что не так, как я взять данные из массива, но я не уверен, как это правильно сделать, пожалуйста, помогите

+0

'modday.push ($ (это) .attr ('имя'));' - Вы подталкивают имя который будет просто «модальным днем» для каждого элемента, вам нужно нажать значение вместо –

+0

какое значение? это modalday правильный параметр для этого? –

+0

'$ (this) .val()' должно, вероятно, это сделать - http://api.jquery.com/val/ –

ответ

0

Я думаю, что это, где ваш код является неправильным:

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

Вы должны установить значение флажка, а не имя элемента. Так что это:

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

или даже просто изменить «имя» на «значение»:

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

Затем, для того, чтобы отправить данные в PHP сообщению, строка должна выглядеть это:

modalday[]=T&modalday[]=W&modalday[]=Th 

Так что либо вы используете цикл для создания строк, или просто использовать $ (форма) .serialize(), как это:

обернуть флажок в форме:

<form id="checkboxform"> 
<!-- your check box codes here --> 
</form> 

В общем, вы JQuery код:

var params = $('#checkboxform').serialize(); 

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

Смотрите мой Js скрипку пример кода: https://jsfiddle.net/0y84tws2/

+0

Я сделал это, но он все еще не вставлял ничего, я думаю, что у меня все еще есть что-то неправильно, кроме этого –

+0

, прежде чем сделать вызов ajax с PHP, попробуйте console.log () переменную вашего блока. и см. в консоли, если есть какая-либо ошибка –

+0

Ошибка отправлена ​​ –

0

я нашел более простой способ сделать это,

в моем jquery, я изменил свой предыдущий код на это

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, это, как я принял значения, довольно простые

$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(); 
    } 
Смежные вопросы