Получение динамических данных в значениях переключателей и обновление базы данных MySQL

#javascript #php #mysql

#javascript #php #mysql

Вопрос:

У меня есть панель мониторинга, и у меня есть одна страница, и я установил три вкладки навигации на одной странице с событиями нажатия, где я могу перемещаться по ссылкам вкладок на одной странице.

На вкладке навигации у меня есть вкладка «Пользователи», где я могу получить доступ ко всем данным пользователей. В области пользователя у меня есть кнопка изменить роль, когда я нажимаю на кнопку, появляется всплывающее окно с переключателями с двумя кнопками (ДА или НЕТ). Единственное, чего я хочу добиться, это передать идентификатор пользователя во всплывающее окно, получить динамические значения в переключатель из базы данных во всплывающем окне («уже реализовано, но оно не показывает значения, оно показывает только переключатели») и изменить роли пользователей без обновления страницы и остаться на текущей вкладке.

Вот мой код:

 <tbody>
    <?php
        $query = mysqli_query($conn,"select * from tbl_users, tbl_user_roles WHERE tbl_users.user_role_id = tbl_user_roles.user_role_id");
        $i = 1;
        while($fetch = mysqli_fetch_array($query))
    {?>
    <tr>
    <td><?php echo $i  ?></td>
    <td><?php echo $fetch['Username']?></td>
    <td><?php echo $fetch['email']?></td>
    <td><?php echo $fetch['role']?></td>
    <td><a href="#" onclick="show_dialog()" id="btn-show-dialog">Change Role</a></td>
    </tr>
    <?php } ?>
</tbody>
 

всплывающее окно

 <div class="overlay-roles" id="dialog-container">
    <form method="POST">
        <div class="popup-roles">
        <?php 
            $roles_query = mysqli_query($conn,"select * from tbl_user_roles");
            while ($roles = mysqli_fetch_array($roles_query)){
                $user_role = $roles['user_role'];
                echo "<tr><td><input type='radio' name='radio' value='<?php echo $user_role>'  /></td></tr>";
            }
        ?>
            <div class="text-right">
                <button  class="conf-dialog-btn-no" id="ignore">Cancel</button>
                <button name="delete-user" class="conf-dialog-btn-yes" id="confirm">Apply</button>
            </div>
        </div>
    </form>
</div>
 

javascript для отображения / скрытия всплывающего окна

 <script type="text/javascript">
    document.getElementById("btn-show-dialog").onclick = function(){show_dialog()};
    
    var overlayme = document.getElementById("dialog-container");
    function show_dialog() {
        overlayme.style.display = "block";
    }
    
    document.getElementById("confirm").onclick = function(){confirm()};
    function confirm() {/   
        overlayme.style.display = "none";
    }
    
    document.getElementById("cancel").onclick = function(){cancel()};
    function cancel() {
        overlayme.style.display = "none";
    }
</script>
 

Комментарии:

1. В javascript вы назначаете различные функции, как event handlers и до определения функций. В одной из этих функций ( confirm() ) у вас ошибочная косая / черта, и confirm это стандартная функция js

2. Если вам нужно получить user id и передать это в PHP для дальнейшей обработки, почему вы нигде не использовали идентификатор пользователя в выводе HTML? Вы могли бы легко назначить его в качестве параметра show_dialog или получить к нему доступ из той же строки (если бы он каким-то образом там был), используя родственные селекторы

3. я заменяю $i автоинкрементом на $fetch User_id что теперь делать???