ホームページ >バックエンド開発 >PHPの問題 >PHP ポップアップ ウィンドウからデータベースを操作する方法

PHP ポップアップ ウィンドウからデータベースを操作する方法

PHPz
PHPzオリジナル
2023-04-18 09:48:20874ブラウズ

PHP 開発者として、私たちはデータベースを操作する必要があることがよくあります。実際のプロジェクトでは、削除や変更などの操作を実装するためにポップアップ ウィンドウを使用する必要があることがよくあります。

この記事では、読者がこのスキルをよりよく習得できるように、PHP ポップアップ ウィンドウからデータベースを操作する方法を紹介します。

1. 準備作業

ポップアップウィンドウを実装する前に、次の作業を準備する必要があります:

1. データベース接続: PHP を使用してデータベースを作成する必要があります。データベース接続。

2. データベース クエリ: PHP を使用してデータベースにクエリを実行し、操作する必要のあるデータを取得する必要があります。

3. ポップアップ ウィンドウのコード: ポップアップ ウィンドウのコードを記述するには、JavaScript または jQuery を使用する必要があります。

デモンストレーションの便宜上、ここではデータベースとして MySQL を使用し、データベースに接続するために PHP PDO を使用します。

2. データの削除

ここではポップアップウィンドウからデータを削除する方法を紹介します。まず、削除するデータをデータベースから取得し、ユーザーが選択しやすいようにページに表示する必要があります。

1. データのクエリ

次のコードを使用して、削除する必要があるデータをクエリできます:

<?php
//连接数据库
$dsn = &#39;mysql:host=localhost;dbname=test;charset=utf8&#39;;
$username = &#39;root&#39;;
$password = &#39;123456&#39;;
$options = [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, //异常处理模式
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, //默认的查询结果类型
];
$pdo = new PDO($dsn, $username, $password, $options);

//查询要删除的数据
$sql = "SELECT * FROM test_table WHERE status = 0"; //status字段表示待删除数据
$stmt = $pdo->prepare($sql);
$stmt->execute();
$data = $stmt->fetchAll();
?>

上記のコードでは、最初にデータベースに接続します。そして、SELECT ステートメントを使用して、削除する必要があるデータをクエリします。このうちステータスフィールドは削除対象のデータを示します。

  1. データの表示

次に、ユーザーが選択できるように、クエリされたデータをページに表示します。

<table>
    <thead>
        <tr>
            <th>ID</th>
            <th>Name</th>
            <th>Email</th>
            <th>Action</th>
        </tr>
    </thead>
    <tbody>
        <?php foreach($data as $index=>$row): ?>
        <tr>
            <td><?php echo $row[&#39;id&#39;]; ?></td>
            <td><?php echo $row[&#39;name&#39;]; ?></td>
            <td><?php echo $row[&#39;email&#39;]; ?></td>
            <td><button class="delete-btn" data-id="<?php echo $row[&#39;id&#39;]; ?>">删除</button></td>
        </tr>
        <?php endforeach; ?>
    </tbody>
</table>

上記のコードでは、HTML テーブルを使用して、クエリされたデータをページに表示します。削除関数を実装するには、データの各行に削除ボタンを追加し、data-id 属性を通じて対応する ID 値を保存します。

  1. データの削除

最後に、削除関数を実装しましょう。ユーザーが削除ボタンをクリックすると、データを削除するかどうかをユーザーに尋ねる確認ボックスが表示されます。ユーザーが削除を確認すると、データベースからデータを削除するための AJAX リクエストが送信されます。

$('.delete-btn').on('click', function() {
    var id = $(this).data('id');
    if (confirm('确定要删除吗?')) {
        $.ajax({
            url: 'delete.php', //处理删除请求的PHP文件
            type: 'POST',
            data: {id: id},
            success: function(res) {
                if (res.code === 0) {
                    alert('删除成功');
                    window.location.reload(); //刷新页面
                } else {
                    alert('删除失败,请稍后再试');
                }
            },
            error: function() {
                alert('请求失败,请稍后再试');
            }
        });
    }
});

上記のコードでは、jQuery を使用して削除ボタンのクリック イベントをバインドします。ユーザーが削除ボタンをクリックすると、まずデータの ID 値を取得し、確認関数を使用してユーザーに削除するかどうかを尋ねる確認ボックスをポップアップ表示します。ユーザーがクリックして確認すると、delete.php ファイルに POST リクエストが送信され、データベースからデータが削除されます。

注: delete.php ファイルのコードは次のとおりです:

<?php
//连接数据库
$dsn = &#39;mysql:host=localhost;dbname=test;charset=utf8&#39;;
$username = &#39;root&#39;;
$password = &#39;123456&#39;;
$options = [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, //异常处理模式
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, //默认的查询结果类型
];
$pdo = new PDO($dsn, $username, $password, $options);

//删除数据
$id = $_POST['id'];
$sql = "DELETE FROM test_table WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$res = $stmt->execute();

//返回结果
if ($res) {
    echo json_encode(['code' => 0, 'msg' => '删除成功']);
} else {
    echo json_encode(['code' => 1, 'msg' => '删除失败']);
}
?>

上記のコードでは、最初にデータベースに接続し、次に DELETE ステートメントを使用してデータを削除します。データベース。最後に、結果を JSON 形式で返します。

3. データの変更

データの削除に加えて、データの変更が必要になることがよくあります。以下に、ポップアップウィンドウからデータを変更する方法を紹介します。

  1. データのクエリ

まず、変更する必要があるデータをデータベースからクエリし、ユーザーが簡単に変更できるようにページに表示する必要があります。

<?php
//连接数据库
$dsn = &#39;mysql:host=localhost;dbname=test;charset=utf8&#39;;
$username = &#39;root&#39;;
$password = &#39;123456&#39;;
$options = [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, //异常处理模式
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, //默认的查询结果类型
];
$pdo = new PDO($dsn, $username, $password, $options);

//查询要修改的数据
$id = $_GET['id'];
$sql = "SELECT * FROM test_table WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$stmt->execute();
$data = $stmt->fetch();
?>

上記のコードでは、まず $_GET['id'] を通じて変更する必要があるデータの ID を取得します。次に、SELECT ステートメントを使用してデータベースのデータをクエリします。

  1. データの表示

次に、ユーザーの変更を容易にするために、クエリされたデータをページに表示します。ここでも HTML フォームを使用して、クエリされたデータをフォームに入力します。

<form>
    <input type="hidden" name="id" value="<?php echo $data[&#39;id&#39;]; ?>">
    <div>
        <label>Name:</label>
        <input type="text" name="name" value="<?php echo $data[&#39;name&#39;]; ?>">
    </div>
    <div>
        <label>Email:</label>
        <input type="text" name="email" value="<?php echo $data[&#39;email&#39;]; ?>">
    </div>
    <button class="submit-btn">保存</button>
    <button class="cancel-btn" type="button" onclick="history.back()">取消</button>
</form>

変更する必要があるデータの ID 値を保存するために、フォームに隠しフィールドを追加したことに注意してください。

  1. データの変更

最後に、変更関数を実装しましょう。ユーザーが保存ボタンをクリックすると、変更されたデータをデータベースに更新するための AJAX リクエストが送信されます。

$('.submit-btn').on('click', function() {
    var data = $('form').serialize();
    $.ajax({
        url: 'update.php', //处理修改请求的PHP文件
        type: 'POST',
        data: data,
        success: function(res) {
            if (res.code === 0) {
                alert('修改成功');
                window.location.href = 'index.php'; //跳转到列表页
            } else {
                alert('修改失败,请稍后再试');
            }
        },
        error: function() {
            alert('请求失败,请稍后再试');
        }
    });
});

上記のコードでは、jQuery を使用して保存ボタンのクリック イベントをバインドします。ユーザーが保存ボタンをクリックすると、まずシリアライズ関数を通じてフォーム内のすべてのデータを取得し、それを update.php ファイルに送信します。ここでは POST メソッドを使用してデータを送信します。

注: update.php ファイルのコードは次のとおりです:

<?php
//连接数据库
$dsn = &#39;mysql:host=localhost;dbname=test;charset=utf8&#39;;
$username = &#39;root&#39;;
$password = &#39;123456&#39;;
$options = [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, //异常处理模式
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, //默认的查询结果类型
];
$pdo = new PDO($dsn, $username, $password, $options);

//修改数据
$id = $_POST['id'];
$name = $_POST['name'];
$email = $_POST['email'];
$sql = "UPDATE test_table SET name = :name, email = :email WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$stmt->bindParam(':name', $name, PDO::PARAM_STR);
$stmt->bindParam(':email', $email, PDO::PARAM_STR);
$res = $stmt->execute();

//返回结果
if ($res) {
    echo json_encode(['code' => 0, 'msg' => '修改成功']);
} else {
    echo json_encode(['code' => 1, 'msg' => '修改失败']);
}
?>

上記のコードでは、最初にデータベースに接続し、次に UPDATE ステートメントを使用してデータを更新します。データベース。最後に、結果を JSON 形式で返します。

デモンストレーションの便宜上、ここではシリアル化関数を使用してフォーム データを文字列に変換しますが、実際のプロジェクトでは通常、FormData オブジェクトを使用してフォーム データを処理し、次のような関数をサポートします。ファイルをアップロードしています。

4. 概要

この記事の導入部を通じて、PHP ポップアップ ウィンドウからデータベースを操作する方法を学びました。削除であっても、変更であっても、同様の方法を使用してそれを実現できます。この記事が読者にとって何らかの助けになれば幸いです。まだ理解できない点がある場合は、ディスカッションのためにメッセージを残してください。

以上がPHP ポップアップ ウィンドウからデータベースを操作する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。