Почему при использовании ajax всегда 0?

index.html
<form action="/add.php" method="post" class="form_in" data-action="add">
<input id="name" name="name" type="text" autofocus>
<input id="check" name="check" type="checkbox">
<button type="submit">ADD</button>
</form>

add.php
if (isset($_POST['check'])){
	echo "1";
}
else{
	echo "0";
}

Если без аякс, работает. Если с, все время 0.
$(function(){
		$(document).on('submit', '[data-action="add"]', function (e) {
		  e.preventDefault();
		  $.ajax({
		    url: this.action,
		    type: this.method,
		    data: {
		      	name: this.name.value,
			check: this.check.value
		    }
		  }).done(function (data) {
		   	$(".stat_ok").html(data);
			$(".stat_ok").fadeIn();	
		  });
		});
	});
  • Вопрос задан
  • 255 просмотров
Решения вопроса 1
@reifter
check: this.check.value - не правильно в этой строчке. Нужно проверять включен чекбокс или нет, а не вытаскивать значение

обновление

$(function(){
    $(document).on('submit', '[data-action="add"]', function (e) {
      e.preventDefault();
      $.ajax({
        url: this.action,
        type: this.method,
        data: {
          	name: $('#name').val(),
          	check: ($('#check').prop('checked'))?1:0
        }
      }).done(function (data) {
       	$(".stat_ok").html(data);
      $(".stat_ok").fadeIn();	
      });
    });
  });


Правильно будет сделать так

$(function(){
    $(document).on('submit', '[data-action="add"]', function (e) {
      e.preventDefault();
      $.ajax({
        url: this.action,
        type: this.method,
        data: $( this ).serialize()
      }).done(function (data) {
       	$(".stat_ok").html(data);
      $(".stat_ok").fadeIn();	
      });
    });
  });
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
shaks
@shaks
Чтото вы не то спросили. У вас всегда должна быть единица а не ноль. Т.к. вы всегда передаете check.
Ответ написан
Комментировать
bootd
@bootd
Гугли и ты откроешь врата знаний!
isset убери или местами echo поменяй!

isset — Определяет, была ли установлена переменная значением отличным от NULL
Ответ написан
serejatoje
@serejatoje
$(this).prop('checked') вроде..
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы