2015-08-05 3 views
0

Помогите, что-то не так с моими галочками. Я пытаюсь сделать форму с флажками. Однако, когда я устанавливаю только один флажок, все флажки также будут отмечены галочкой, и данные будут вставлены в базу данных.Флажки не работают

Это мой код ниже,

$(document).ready(function() { 

     function showComment() { 
      $.ajax({ 
       type: "post", 
       url: "registerarray.php", 
       data: "action=showcomment", 
       success: function (data) { 
        $("#comment").html(data); 
       } 
      }); 
     } 
     showComment(); 

     $("#send").click(function() { 

      var starttime = $("#starttime").val(); 
      var endtime = $("#endtime").val(); 
      var monday = $("#monday").val(); 
      var tuesday = $("#tuesday").val(); 
      var wednesday = $("#wednesday").val(); 
      var thursday = $("#thursday").val(); 
      var saturday = $("#saturday").val(); 
      var friday = $("#friday").val(); 
      var sunday = $("#sunday").val(); 

      var dataString = "starttime1=" + starttime + "&endtime1=" + endtime + "&monday1=" + monday + "&tuesday1=" + tuesday + "&wednesday1=" + wednesday + "&thursday1=" + thursday + "&friday1=" + friday + "&saturday1=" + saturday + "&sunday1=" + sunday + "&action=addcomment"; 

      $.ajax({ 
       type: "post", 
       url: "registerarray.php", 
       data: dataString, 
       success: function (data) { 
        showComment(); 
        $("#formTable")[0].reset(); 

       } 

      }); 

     }); 
    }); 

<div id="formbox"> 
       <form id="formTable"> 

        <div class="form-group"> 
         <div class="col-md-2"> 
          <lable>Start time</lable> 
          <input type="text" class="form-control" name="startTime" id="starttime"> 
         </div> 
         <div class="col-md-2"> 
          <lable>End time</lable> 
          <input type="text" class="form-control" name="endTime" id="endtime"> 
         </div> 
        </div> 

        <div class="form-group"> 
         <lable>Monday</lable> 
         <input type="checkbox" name="Monday" value="1" id="monday"> 
         <lable>Tuesday</lable> 
         <input type="checkbox" name="Tuesday" value="1" id="tuesday"> 
         <lable>Wednesday</lable> 
         <input type="checkbox" name="Wednesday" value="1" id="wednesday"> 
         <lable>Thursday</lable> 
         <input type="checkbox" name="Thursday" value="1" id="thursday"> 
         <lable>Friday</lable> 
         <input type="checkbox" name="Friday" value="1" id="friday"> 
         <lable>Saturday</lable> 
         <input type="checkbox" name="Saturday" value="1" id="saturday"> 
         <lable>Sunday</lable> 
         <input type="checkbox" name="Sunday" value="1" id="sunday"> 
        </div> 

        <div class="form-group"> 
         <input type="button" class="btn btn-success" value="Add" id="send"> 
        </div> 

       </form> 
      </div> 

Пожалуйста, помогите спасибо

+0

вам нужно найти, если ваш флажок перед отправкой значений в AJAX –

+0

дать им отдельные значения они являются все установлено в 1 –

+0

@ fighter7788, если вы получили ответ, а затем одобрили ответ или скажите нам, если что-нибудь еще. – bharatpatel

ответ

0

Вам нужно изменить некоторые вещи. Прежде всего, необходимо прочитать, что проверено:

var monday = $('#monday').is(':checked') //true if is checked 

Вы должны изменить маркирующие, потому что вы сочинительство lable и его неправильное

<label for="monday">Monday</label> 
+0

Я получил нуль, несмотря на проверку флажка – fighter7788

+0

Пожалуйста, прочитайте код. Обратите внимание, что я пропускаю символ '#' для выбора по id. Теперь в коде '$ ('# monday')' вместо '$ ('monday')', который я написал в последний раз. Он должен работать –

0

Вы должны использовать .is(":checked") метод вместо val() метод, как приведено ниже.

var monday = $("#monday").is(":checked"); 

.val() всегда возвращает значение checkbox независимо от того, это checked или нет.

0

Вы можете использовать другие ответы также и все они являются правильными, Но есть и другой вариант, доступный. В соответствии с вашим кодом я вижу, что вы хотите, чтобы все элементы из вашей формы и вы хотите вызвать ajax. Для этого вы также можете использовать параметр serialize() для этого.

var parameters = $("#formTable").serialize(); 
console.log(parameters); 

Проверьте этот url serialize elements для более подробной информации.

0

Я решить его с помощью этого

if(document.getElementById('monday').checked) { 
       var monday = $("#monday").val(); 
      } 

Спасибо всем, что помогло :)

Смежные вопросы