Динамически установлен флажок "хобби" в соответствии со значением базы данных с помощью другого идентификатора

Мой вопрос: в первый раз я нажимаю кнопку редактирования, затем флажок установлен в соответствии со значением таблицы базы данных, а затем второй раз, когда я нажимаю другую кнопку редактирования, значение флажка в первый раз не снято, я не знаю, что это за ошибка в моем коде. пожалуйста, проверьте мой код.

Пример: на скриншоте формы, когда я нажимаю первую кнопку редактирования, затем проверяю значение флажка (например, крикет, хокки, шахматы), а после второй кнопки редактирования я нажимаю, затем значение флажка (крикет) проверяется, но проблема заключается в значении флажка в первый раз (например, крикет , hokky, chess) не снят, помогите, пожалуйста,

пожалуйста, проверьте скриншот ниже:

Скриншот формы

HTML-код:

    <form id="crudform" method="post">
        <label>Hobby:</label>
        <input type="checkbox" name="hobby[]" value="cricket">Cricket
        <input type="checkbox" name="hobby[]" value="hokky">Hobby
        <input type="checkbox" name="hobby[]" value="chess">Chess
        <input type="submit" name="submit" value="Add">
    </form>

<div class="table"></div>

Снимок экрана таблицы базы данных

Код PHP:

<table>
        <thead>
            <tr>
                <th>Hobby</th>
                <th colspan="2">Action</th>
            </tr>
        </thead>
        <tbody>
            <?php if(mysqli_num_rows($result)>0){ ?>
                <?php while($data = mysqli_fetch_assoc($result)){ ?>
            <tr>
                <td><?php echo $data['hobby'];?></td>
                <td><button name="edit" data-id = <?php echo $data['id'];?> class="btn btn-info">Edit</button></td>
                <td><button class="btn btn-danger">Delete</button></td>
            </tr>
        <?php } ?>
        <?php } ?>
        </tbody>
    </table>

Код JQuery:

<script type="text/javascript">
$("button[name=edit]").click(function(){
    var id = $(this).attr("data-id");

    var hobbyss = [];
    $(":checkbox").each(function(index,element){
        hobbyss.push($(this).val());
    });


    $.ajax({
        url:"http://localhost/interview/crud_checkbox/edit.php",
        method:"post",
        data:{id:id},
        dataType:"json",
        success:function(response){
            var hobby = response.hobby.split(",");          // ["cricket", "hokky", "chess"]    

            $.each(hobby,function(index,element){
                if($.inArray(element,hobbyss) >= 0){
                    console.log($("input[value="+element+"]").prop("checked",true));
                }
            }); 
        }
    });
});
</script>

Не уверен, о чем вы здесь спрашиваете, по крайней мере, я не вижу никаких флажков ...

jeroen 10.08.2018 16:17

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

jufixes 10.08.2018 16:21

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

jufixes 10.08.2018 16:22

И как вы ожидаете, что кто-нибудь поможет вам, когда вы разместите код, который совершенно не связан с вашей проблемой?

jeroen 10.08.2018 16:24

@jeroen, пожалуйста, помогите мне

jufixes 10.08.2018 16:28

Вы спрашиваете, почему флажки в вашем частном PHPMyadmin не проверяются из действий пользователя, обрабатываемых в вашем коде PHP / jQuery?

Louys Patrice Bessette 10.08.2018 16:36

@LouysPatriceBessette, мой вопрос: я нажимаю кнопку редактирования, и хобби не проверяется в соответствии со значением столбца хобби в базе данных

jufixes 10.08.2018 16:48

Добро пожаловать в Stackoverflow. Измените свой вопрос, чтобы уточнить описание проблемы. Для получения рекомендаций посетите страницу как спросить и как создать минимальный пример.

5th 10.08.2018 16:52

Хорошо ... Итак, я предполагаю, что мы говорим о синей кнопке редактирования (а не о ссылке в PHPMyadmin). Вы говорите, что флажки "хобби" должны быть отмечены в соответствии со значением DB при успехе Ajax? Это оно?

Louys Patrice Bessette 10.08.2018 16:59

@LouysPatriceBessette да отличное качество

jufixes 10.08.2018 18:08

Флажки @LouysPatriceBessette, я говорю, хобби, должны быть отмечены в соответствии со значением DB при успехе Ajax.

jufixes 10.08.2018 18:39

Я отредактировал ваш вопрос, чтобы было понятнее ... Есть кое-что, что вы должны добавить: разметку той ячейки, где есть флажки. Я сейчас занят ... Но добавьте эту информацию, и кто-нибудь сможет ответить. ;)

Louys Patrice Bessette 10.08.2018 18:44

@LouysPatriceBessette, когда вы освободитесь, решите мою проблему, пожалуйста, пожалуйста, пожалуйста

jufixes 10.08.2018 19:02
Добавьте разметку той ячейки, где установлены флажки, пожалуйста. Вы можете скопировать / вставить его в вашем вопросе из инструменты разработчика вашей отображаемой страницы. Достаточно одной линии tr.
Louys Patrice Bessette 11.08.2018 01:05
3
14
738
1

Ответы 1

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

$("button[name=edit]").click(function(){

	$('input[name=hobby\\[\\]]').prop('checked',false);
    
    //rest of your code here 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="crudform" method="post">
	<label>Hobby:</label>
	<input type="checkbox" name="hobby[]" value="cricket" checked >Cricket
	<input type="checkbox" name="hobby[]" value="hokky">Hobby
	<input type="checkbox" name="hobby[]" value="chess" checked >Chess
	<input type="submit" name="submit" value="Add">
</form>

<button name="edit" data-id ="1" class="btn btn-info">Edit</button>

Другие вопросы по теме