PHP フォームでマルチレベルの選択と表示を処理する方法

王林
リリース: 2023-08-11 06:06:01
オリジナル
1409 人が閲覧しました

PHP フォームでマルチレベルの選択と表示を処理する方法

PHP フォームでマルチレベルの選択と表示を処理する方法

Web アプリケーションを開発する場合、フォームは不可欠な部分です。フォームを使用すると、ユーザーはデータを入力および送信できるため、当社はユーザー入力を処理して保存できます。場合によっては、フォームに州や都市の選択、複数レベルの分類の選択など、複数レベルの選択が含まれることがあります。この記事では、PHP フォームで複数レベルの選択と表示を処理する方法に関するテクニックを紹介し、対応するコード例を示します。

  1. データベース設計

まず、マルチレベルの選択されたデータを保存するために、データベース内の対応するテーブルを設計する必要があります。州と市を例に挙げると、「州」、「市」、「地区」の 3 つのテーブルを設計できます。各テーブルには、各レコードを一意に識別する自動インクリメント主キー フィールドと、表示目的で対応する名前フィールドが含まれています。

たとえば、「provinces」テーブルには次のフィールドを含めることができます:

id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255)
ログイン後にコピー

「cities」テーブルには次のフィールドを含めることができます:

id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255),
province_id INT
ログイン後にコピー

「districts」テーブル次のフィールドを含めることができます。

id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255),
city_id INT
ログイン後にコピー
  1. データベース クエリ

次に、ユーザーの選択に基づいて、対応するデータをクエリする必要があります。この例では、ドロップダウン ボックスを使用して複数レベルの選択を実現できます。ユーザーが州を選択した後は、州の ID に基づいて対応する都市データをクエリする必要があり、次にユーザーが都市を選択した後、都市の ID に基づいて対応する地区と郡のデータをクエリする必要があります。

以下は簡単なデータベース クエリ コードの例です:

<?php
// 连接数据库
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("数据库连接失败: " . $conn->connect_error);
}

// 获取省份数据
$sql = "SELECT * FROM provinces";
$result = $conn->query($sql);
$provinces = array();
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        $provinces[$row['id']] = $row['name'];
    }
}

// 获取城市数据
$provinceId = $_POST['province_id'];
$sql = "SELECT * FROM cities WHERE province_id = " . $provinceId;
$result = $conn->query($sql);
$cities = array();
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        $cities[$row['id']] = $row['name'];
    }
}

// 获取区县数据
$cityId = $_POST['city_id'];
$sql = "SELECT * FROM districts WHERE city_id = " . $cityId;
$result = $conn->query($sql);
$districts = array();
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        $districts[$row['id']] = $row['name'];
    }
}

$conn->close();
?>
ログイン後にコピー
  1. フォームの表示と処理

最後に、クエリされたデータをフォームに表示する必要があります。ユーザーが送信したデータを処理します。以下は、単純なフォーム表示と処理コードの例です。

<!DOCTYPE html>
<html>
<head>
    <title>多层级选择示例</title>
</head>
<body>
    <form method="post" action="process.php">
        <label for="province">省份:</label>
        <select id="province" name="province_id">
            <?php foreach ($provinces as $id => $name) { ?>
                <option value="<?php echo $id; ?>"><?php echo $name; ?></option>
            <?php } ?>
        </select><br>

        <label for="city">城市:</label>
        <select id="city" name="city_id">
            <?php foreach ($cities as $id => $name) { ?>
                <option value="<?php echo $id; ?>"><?php echo $name; ?></option>
            <?php } ?>
        </select><br>

        <label for="district">区县:</label>
        <select id="district" name="district_id">
            <?php foreach ($districts as $id => $name) { ?>
                <option value="<?php echo $id; ?>"><?php echo $name; ?></option>
            <?php } ?>
        </select><br>

        <input type="submit" value="提交">
    </form>
</body>
</html>
ログイン後にコピー

上記のコードでは、foreach ループを使用して、クエリされたデータをドロップダウン ボックス オプションとして表示します。ユーザーが対応するオプションを選択すると、フォーム データは送信時にデータを処理する「process.php」スクリプトに送信され、このスクリプト内で対応するデータの処理と保存操作を実行できます。

これは、PHP フォームで複数レベルの選択と表示を処理する方法です。データベースを適切に設計し、データをクエリすることで、マルチレベルの選択機能を簡単に実装し、ユーザーが送信したデータを通じてさらなる操作を実行できます。この記事があなたのお役に立てば幸いです!

以上がPHP フォームでマルチレベルの選択と表示を処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート