Как проверить динамический флажок и POST в ajax с делегированием? - PullRequest
0 голосов
/ 04 сентября 2018

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

 while($getplands = mysqli_fetch_assoc($getplanresults)){
     <tr>
<td><input class="thisinput" type="checkbox" value="'.$getplands['id'].'"></td>
     </tr>
}

Когда пользователь нажимает на флажок, должны произойти две вещи

  1. данные отправляются в ajax и ответ обратного вызова отображается в div

  2. флажок установлен

Если я использую приведенный ниже код, флажок не проверяется, но я могу получать данные из базы данных с помощью ajax и отображать выбор пользователя.

$('.thisinput').click(function(e){//a checkbox is checked

$(this).prop('checked', true);//does not work here

 $.ajax({//works here
                        type: 'POST',
                        url: 'fetch.php',
                        data:values,
                        dataType: 'json',
                        success: function(datas)
                        {
                        $('#mychoice > tbody:last').append(datas.mychoice);
                        }

                 });    
});

Если я использую приведенный ниже код, флажок установлен, но я не могу получать данные из базы данных с помощью ajax и отображать выбор пользователя.

    $('.thisinput').on('change', 'input:checkbox', function(){
    $(this).prop('checked', true);//works here

 $.ajax({//does not work here
                        type: 'POST',
                        url: 'fetch.php',
                        data:values,
                        dataType: 'json',
                        success: function(datas)
                        {
                        $('#mychoice > tbody:last').append(datas.mychoice);
                        }

                 });   
    });

1 Ответ

0 голосов
/ 04 сентября 2018

Хорошо, поэтому я просто исправил проблему. Ниже код работает для меня.

  $('.thisinput').on('change',function(){
    $(this).prop('checked', true);//works here

 $.ajax({//works here
                        type: 'POST',
                        url: 'fetch.php',
                        data:values,
                        dataType: 'json',
                        success: function(datas)
                        {
                        $('#mychoice > tbody:last').append(datas.mychoice);
                        }

                 });   
    });
...