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

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

Apr 18, 2023 am 09:48 AM

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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP 8 JIT(Just-in-Time)コンピレーション:パフォーマンスの向上方法。 PHP 8 JIT(Just-in-Time)コンピレーション:パフォーマンスの向上方法。 Mar 25, 2025 am 10:37 AM

PHP 8のJITコンピレーションは、頻繁に実行されるコードをマシンコードにコンパイルし、重い計算でアプリケーションに利益をもたらし、実行時間を短縮することにより、パフォーマンスを向上させます。

OWASPトップ10 PHP:共通の脆弱性を説明し、軽減します。 OWASPトップ10 PHP:共通の脆弱性を説明し、軽減します。 Mar 26, 2025 pm 04:13 PM

この記事では、PHPおよび緩和戦略におけるOWASPトップ10の脆弱性について説明します。重要な問題には、PHPアプリケーションを監視および保護するための推奨ツールを備えたインジェクション、認証の壊れ、XSSが含まれます。

PHPセキュアファイルアップロード:ファイル関連の脆弱性の防止。 PHPセキュアファイルアップロード:ファイル関連の脆弱性の防止。 Mar 26, 2025 pm 04:18 PM

この記事では、コードインジェクションのような脆弱性を防ぐために、PHPファイルのアップロードを確保することについて説明します。ファイルタイプの検証、セキュアストレージ、およびアプリケーションセキュリティを強化するエラー処理に焦点を当てています。

PHP暗号化:対称と非対称暗号化。 PHP暗号化:対称と非対称暗号化。 Mar 25, 2025 pm 03:12 PM

この記事では、PHPの対称的および非対称暗号化について説明し、適合性、パフォーマンス、セキュリティの違いを比較しています。対称暗号化はより速く、バルクデータに適していますが、非対称は安全なキー交換に使用されます。

PHP認証&amp;承認:安全な実装。 PHP認証&amp;承認:安全な実装。 Mar 25, 2025 pm 03:06 PM

この記事では、不正アクセスを防ぎ、ベストプラクティスの詳細、セキュリティ強化ツールの推奨を防ぐために、PHPで堅牢な認証と承認の実装について説明します。

mysqli_query()とmysqli_fetch_assoc()の目的は何ですか? mysqli_query()とmysqli_fetch_assoc()の目的は何ですか? Mar 20, 2025 pm 04:55 PM

この記事では、mysqlデータベースインタラクションのphpでmysqli_query()およびmysqli_fetch_assoc()関数について説明します。それは彼らの役割、違いを説明し、それらの使用の実用的な例を提供します。主な議論は、USINの利点に焦点を当てています

PHPを使用してデータベースからデータを取得するにはどうすればよいですか? PHPを使用してデータベースからデータを取得するにはどうすればよいですか? Mar 20, 2025 pm 04:57 PM

記事では、PHPを使用してデータベースからデータを取得し、手順、セキュリティ対策、最適化手法、およびソリューションを使用した一般的なエラーをカバーしています。

PHP CSRF保護:CSRF攻撃を防ぐ方法。 PHP CSRF保護:CSRF攻撃を防ぐ方法。 Mar 25, 2025 pm 03:05 PM

この記事では、CSRFトークン、同じサイトCookie、適切なセッション管理など、PHPでのCSRF攻撃を防ぐための戦略について説明します。

See all articles