ホームページ >バックエンド開発 >PHPの問題 >PHP 3 レベル連携の実装手順

PHP 3 レベル連携の実装手順

王林
王林オリジナル
2023-05-24 15:45:37861ブラウズ

PHP 3 レベル連携の実装手順

インターネットの発展に伴い、Web 開発は IT 業界の重要な部分になりました。 Web 開発の重要なツールとして、PHP の応用範囲はますます広がっています。 Web 開発では、3 レベルのリンク フォーム コントロールは、地方自治体の住所の選択、ブランド、モデル、バージョンの選択など、特別な場合に非常に役立ちます。この記事では、PHPの3階層連携を実装する手順を簡単に紹介します。

1. 3 段階連携コントロールとは何ですか?

3 段階連携コントロールとは、フロント ページに連携選択リストを表示することを指します。たとえば、リージョンを選択する場合、最初に州を選択してから、それに基づいて州を選択し、次に都市を選択し、最後に都市の選択に基づいて地区または郡を選択します。この 3 レベルのリンク制御は、特別な場合に非常に役立ちます。

第 2 レベルおよび第 3 レベルのリンケージ実装テクノロジ

第 3 レベルのリンケージを実装するテクノロジは多数あり、一般的なテクノロジには、Ajax、jQuery、Vue.js などが含まれます。ここではこれらの技術の紹介はしませんが、シンプルで使いやすいPHPの実装方法を紹介します。

3 および 3 レベル連携の実装手順

3 レベル連携を実現する手順を簡単に紹介します。

1. HTML ページを作成する

まず、州、市、郡のドロップダウン ボックスを含む HTML ページを作成する必要があります。以下に示すように:

<!DOCTYPE html>
<html>
<head>
    <title>三级联动控件</title>
    <meta charset="UTF-8">
</head>
<body>
    <select id="province" name="province">
        <option value="0">请选择省份</option>
        <option value="1">北京</option>
        <option value="2">上海</option>
        <option value="3">广东</option>
        <!-- 其他省份省略 -->
    </select>
    <br><br>
    
    <select id="city" name="city">
        <option value="0">请选择城市</option>
    </select>
    <br><br>

    <select id="district" name="district">
        <option value="0">请选择县区</option>
    </select>
    <br><br>

    <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script type="text/javascript" src="script.js"></script>
</body>
</html>

2. JavaScript コードを作成します

次に、3 レベルのリンケージ イベントを処理するための JavaScript ファイルを作成します。以下に示すように:

$(function(){
    // 省份下拉框改变事件
    $('#province').change(function(){
        var pid = $(this).val(); // 获取选中的省份id
        if(pid == 0){ // 如果省份id为0,则清空城市下拉框和县区下拉框
            $('#city').empty().append('<option value="0">请选择城市</option>');
            $('#district').empty().append('<option value="0">请选择县区</option>');
            return;
        }
        
        $.ajax({
            type: 'post',
            url: 'get_city.php', // 服务器处理程序,可根据需要修改
            data: {pid:pid},
            dataType: 'json',
            success: function(citys){
                $('#city').empty().append('<option value="0">请选择城市</option>');
                $('#district').empty().append('<option value="0">请选择县区</option>');
                $.each(citys, function(i, city){
                    $('#city').append('<option value="'+city.id+'">'+city.name+'</option>');
                });
            }
        });
    });
    
    // 城市下拉框改变事件
    $('#city').change(function(){
        var cid = $(this).val(); // 获取选中的城市id
        if(cid == 0){ // 如果城市id为0,则清空县区下拉框
            $('#district').empty().append('<option value="0">请选择县区</option>');
            return;
        }
        
        $.ajax({
            type: 'post',
            url: 'get_district.php', // 服务器处理程序,可根据需要修改
            data: {cid:cid},
            dataType: 'json',
            success: function(districts){
                $('#district').empty().append('<option value="0">请选择县区</option>');
                $.each(districts, function(i, district){
                    $('#district').append('<option value="'+district.id+'">'+district.name+'</option>');
                });
            }
        });
    });
});

3. サーバー側ハンドラーを作成する

最後に、市と郡のデータをクエリするためのサーバー側ハンドラーも作成する必要があります。以下に示すように:

get_city.php

<?php
header('Content-Type: application/json;charset=utf-8');
$pid = $_POST['pid'];
if(empty($pid)){
    echo json_encode([]);
    exit;
}

// 连接数据库查询城市数据
$conn = new mysqli('localhost', 'root', '123456', 'test');
if(mysqli_connect_errno()){
    echo json_encode([]);
    exit;
}

$conn->set_charset('utf8');
$sql = "select * from city where pid=".$pid;
$result = $conn->query($sql);
$citys = [];
while($row = $result->fetch_assoc()){
    $citys[] = $row;
}

echo json_encode($citys);
exit;
?>

get_district.php

<?php
header('Content-Type: application/json;charset=utf-8');
$cid = $_POST['cid'];
if(empty($cid)){
    echo json_encode([]);
    exit;
}

// 连接数据库查询县区数据
$conn = new mysqli('localhost', 'root', '123456', 'test');
if(mysqli_connect_errno()){
    echo json_encode([]);
    exit;
}

$conn->set_charset('utf8');
$sql = "select * from district where cid=".$cid;
$result = $conn->query($sql);
$districts = [];
while($row = $result->fetch_assoc()){
    $districts[] = $row;
}

echo json_encode($districts);
exit;
?>

4. まとめ

この記事では、PHP の 3 レベルの連携について紹介しました。実装手順。この機能を実装することで、都市部向けの 3 段階の連携セレクターを構築でき、ユーザーの住所選択がより便利かつ迅速になります。 PHP技術を用いて3段階の連携制御を実現するには、フロントエンドとバックエンドの連携が必要で、フロントエンドは主にページ表示機能やイベント処理機能を実装し、バックエンドは主にデータベースへのクエリを実行してデータを取得します。この記事で紹介した方法は実装方法の 1 つであり、読者は必要に応じて改良や最適化を行うことができます。

以上がPHP 3 レベル連携の実装手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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