PHP - кнопка не меняется после отправки - PullRequest
0 голосов
/ 17 ноября 2018

Что я пытаюсь сделать:

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

Проблема:

  • Кнопка вообще не меняется, это происходит только при обновлении страницы.

  • Я пытался использовать echo "<meta http-equiv='refresh' content='0'>"; но это заставляет страницу обновляться дважды

Я знаю, что есть другой способ сделать это с помощью Ajax, но я абсолютно ничего не знаю об этом.Так как я могу изменить кнопку?

<?php
$sql = "SELECT * FROM users WHERE username != 'qq'";
$result = mysqli_query($conn, $sql);

// ver se ha users
if (mysqli_num_rows($result) > 0) {
    while ($row = mysqli_fetch_assoc($result)) {

        if ($row['estado'] == 1) {
            echo '<tr>
                    <td>' . $row["userID"] . '</td>
                    <td>' . $row["username"] . '</td>
                    <td>' . $row["email"] . '</td>
                    <td>' . $row["pnome"] . '</td>
                    <td>' . $row["lnome"] . '</td>
                    <td><form method="post" >
                    <input type="hidden" value="' . $row["userID"] . '" name="id" />
                    <button class="btn btn-danger" type="submit" name="desativar">Change Status To Deactivated</button></form></td>
                  </tr>';
        } else {
            echo '<tr>
                    <td>' . $row["userID"] . '</td>
                    <td>' . $row["username"] . '</td>
                    <td>' . $row["email"] . '</td>
                    <td>' . $row["pnome"] . '</td>
                    <td>' . $row["lnome"] . '</td>

                    <td><form method="POST">
                    <input type="hidden" value="' . $row["userID"] . '" name="id" />
                    <button class="btn btn-success" type="submit" name="ativar">Change Status Activated</button></form></td>
                  </tr>';
        }

        if (isset($_POST['desativar'])){
            $id = $_POST['id'];

            $sql = "UPDATE users SET estado = 0 WHERE userID=".$id;
            mysqli_query($conn, $sql);
        }elseif (isset($_POST['ativar'])){
            $id = $_POST['id'];

            $sql = "UPDATE users SET estado = 1 WHERE userID=".$id;
            mysqli_query($conn, $sql);
        }
    }
} else {
    echo '<tr>
    <td>NO USERS</td>
    <td>NO USERS</td>
    <td>NO USERS</td>
    <td>NO USERS</td>
    <td>NO USERS</td>
    <td>NO USERS</td>
 </tr>';
}
?>

1 Ответ

0 голосов
/ 17 ноября 2018

Поместите PHP в отдельный файл, и вызываемый AJAX-вызов будет выглядеть примерно так:

    function updatedb(val) {

        var userID = document.getElementById('userID').value;
        var username = document.getElementById('username').value;
        var email = document.getElementById('email').value;
        var pnome = document.getElementById('pnome').value;
        var lnome = document.getElementById('lnome').value;

        jQuery.ajax({
        type: "POST",
        url: "script_to_update_db.php",
        data: 'userID=' + userID + '&username='+username + '&email='+email + '&pnome='+pnome + '&lnome='+lnome,
        success: function(data){
            jQuery("#updated-btn").html(data);
        }
        });
    }

И чтобы получить доступ к этой информации из PHP - просто настройте ее следующим образом:

$userID = $POST['userID'] ... ... ...

После обновления как базы данных, так и кнопки (цвет и текст) вы можете реализовать аналогичную функцию для загрузки значений тегов td.

Надеюсь, это поможет! :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...