>백엔드 개발 >PHP 문제 >PHP 3단계 연계 구현 단계

PHP 3단계 연계 구현 단계

王林
王林원래의
2023-05-24 15:45:37862검색

PHP 3단계 연동 구현 단계

인터넷의 발달과 함께 웹 개발은 IT 산업에서 중요한 부분이 되었습니다. 웹 개발을 위한 중요한 도구로서 PHP는 점점 더 광범위한 응용 프로그램을 보유하고 있습니다. 웹 개발에서 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;
?>

IV. 요약

이 글에서는 PHP 3단계 연결을 구현하는 단계를 소개했습니다. 이 기능을 구현함으로써 도시 지역에 대한 3단계 연결 선택기를 구축할 수 있어 사용자가 주소를 더 편리하고 빠르게 선택할 수 있습니다. PHP 기술을 사용하여 3단계 연결 제어를 구현하려면 프런트 엔드와 백 엔드의 협력이 필요합니다. 프런트 엔드는 주로 페이지 표시 및 이벤트 처리 기능을 구현하는 반면, 백 엔드는 주로 데이터를 얻기 위해 데이터베이스를 쿼리하는 역할을 담당합니다. 본 글에서 소개하는 방법은 구현 방법 중 하나일 뿐이며, 독자는 필요에 따라 이를 개선하고 최적화할 수 있다.

위 내용은 PHP 3단계 연계 구현 단계의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.