0

ユーザーがデータベースからレコードを削除するために選択するメニューを使用しています。メニューの下に、データベースのレコードを表示するテーブルがあります。ページを手動で更新すると、テーブルの表示結果にレコードが削除されたことが示されますが、最善の努力にもかかわらず、#results セクションにメッセージが表示されないようです。

HTMLは次のとおりです。

<form action="" method="POST" name="deleteAccountForm">
        <table>
            <thead>
                    <th>Delete Account</th>
                    <th></th>
            </thead>    
            <tbody>
                <tr>
                    <td><select name="deleteMenu" id="deleteMenu">
                    <?php
                    foreach($accounts as $key=>$value) { ?>
                        <option name="account_name" value="<?php echo $value['account_id_PK']; ?>"><?php echo $value['account_name']; ?></option>
                    <?php } ?>
                    </select>

                    </td>
                    <td><input type="submit" name="delete" value="Delete"></td>

                </tr>
            </tbody>
        </table>
    </form>

そして私のJavascript:

var delAccount = function(e) {
    e.preventDefault();
    var data = $('#deleteAccountForm').serialize();

    $.ajax({
        type: "POST",
        url: "inc/functions.php",
        data: data,
        beforeSend: function() {
            $('#results').html('processing');
        },
        error: function() {
            $('#results').html('failure');
        },
        success: function(response) {
            $('#results').html(response);
        },
        timeout: 3000,
    });
};

そして私のPHP:

function delete_account() {

    require(ROOT_PATH . "/inc/database.php");

    $deleteAccount = $_POST['deleteMenu'];



    try {
        $results = $db->prepare("DELETE FROM account WHERE account_id_PK = ?");
        $results->bindValue(1, $deleteAccount);
        $results->execute();
    } catch(Exception $e) {
        echo "ERROR: Data could not be removed from the database. " . $e;
        exit;
    }
}

また、これが完了した後に関数を実行して、ページを手動で更新せずに表示テーブルの結果を更新する方法も知っておく必要があります。

4

2 に答える 2