Строка не удаляется из таблицы. Чего мне не хватает в функциях JS, HTML или PHP? - PullRequest
1 голос
/ 12 апреля 2019

У меня есть несколько таблиц, в которых перечислены разные вещи: вопросы, ответы и пользователи. Таблицы взяты из администратора. С левой стороны код создает ячейку, которая содержит небольшой файл cancel.png img, который должен быть кнопкой удаления для строки. Сейчас я ничего не делаю, когда я нажимаю на любую из кнопок (их много), но анимация при наведении курсора срабатывает, когда я наводю на них курсор. Я не знаю, что не так, я проверил JS от другого моего коллеги, но он работает в другом учреждении.

Я попытался отредактировать JS, проверил SQL-запросы в PHP, проверил базу данных, вызывало ли это что-то там, и не было. Не было и хороших примеров, которые можно было бы заметить в Интернете.

Итак, вот где начинается код: это функция удаления.

<?php
if(isset($_GET['udel'])) {
    $error = 0;
    $uid = mysqli_real_escape_string($link, $_GET['udel']);
    $query = "DELETE FROM users WHERE id = $uid;";
    if (!mysqli_query($link, $query)) $error = 1;
    if ($error == 0) $msg = 'The user has been deleted.';
    else $msg = 'The user couldn\'t be deleted. Contact the website administrator if the problems persists.';
}
?>

Существует php / html, который вызывает другой файл php для печати таблицы (например, пользователей):

<?php
    printUsersTable(getUsers($link));

?>

Это называется так:

<?php // theres code above here
function printUsersTable($users) {
?>

    <table class="neutral" border="0" style="width:500px;">
        <thead>
            <tr>
                <th>DEL</th>
                    <th>Name</th>
                    <th>Email</th>
                    <th>Admin</th>
                    <th>State</th>
            </tr>
        </thead>
        <tbody>
        <?php foreach($users as $user) { ?>
            <tr>
                 <td style="cursor: pointer";><img src="images/cancel.png" class="userDel" rel="<?=$user['id']?>" /></td>
                     <td><?=$user['name']?></td>
                     <td><?=$user['login']?></td>
                     <td><?php if($user['admin'] == 1)  echo 'Y'; else echo 'N'; ?></td>
                     <td><?=$user['state']?></td>
                </tr>

        <?php } ?>
        </tbody>
    </table>
<?php
}
// code continues 
?>

Который все напечатан (поэтому он включен) на этой первой странице администратора.

Затем он переходит к этому (на первой странице администратора, как в первой части кода), где атрибут rel должен срабатывать при нажатии:

$(".userDel").click(function() {
    var uid = $(this).attr("rel");
    if(confirm("Are you sure you want to delete user " + uid + "?")) {
       window.location = 'admin.php?udel=' + uid;
    }
   });

Я тоже пробовал это, но это тоже не работает:

    $(".userDel").on('click', function(event) {
      event.stopPropogation();
      event.stopImmediatePropogation();
      var uid = $(this).attr("rel");
      if(confirm("Are you sure you want to delete user " + uid + "?")) {
        window.location = 'admin.php?udel=' + uid;
      }
    });

Во всех моих файлах сначала идет php-код, затем JS, затем любой HTML. Я в заднице, вы можете мне помочь? (Кроме того, у меня нигде нет SQL-инъекций?)>.>

1 Ответ

0 голосов
/ 12 апреля 2019

Хорошо, так что я понял:

  • Некоторый код в других местах, например, мой файл основных функций, не вызывал ту же базу данных (некоторые называли тестовую, другие - живую). Так что это была проблема для другой проблемы, которую я имел с SMTP.

  • Я включал / src-ing jquery cleditor, когда мне не нужно было его использовать. Я удалил вызов, который в моем JS выше того, что я отправил, и это исправило это. JS теперь работает по мере необходимости и удаляет.

...