cari
Rumahpembangunan bahagian belakangtutorial php用 PHPRPC 实现 Ajax 级联下拉菜单_PHP教程
用 PHPRPC 实现 Ajax 级联下拉菜单_PHP教程Jul 13, 2016 pm 05:33 PM
ajaxjatuh ke bawahmenu lungsur turunbelakangcapaigunalatadipilih

级联下拉菜单就是从一个下拉菜单中选中一项后,相应的另一个下拉菜单的内容会随之改变。

一般来说,最简单的,就是每次选中都提交一次表单,刷新整个页面。这也是用户体验度最差的。

另一种是把所有选项在第一次加载时就全部载入整个页面中的 JavaScript 数组中,然后级联通过 JavaScript 来控制,在整个数据量不大时,这是一个不错的实现无刷新并且快速的方法,但是当整个数据量非常大时,这种方法就会使第一次加载变得非常慢了。

还有就是采用 ajax(动态网站静态化) 方式,即开始只载入第一层菜单的内容,当用户选中第一层菜单的某项时,再通过 xml(标准化越来越近了)HttpRequest 来获取相应选项所对应的第二层菜单的内容。这种方式效果最好,但是采用传统方式来编写这样的 ajax(动态网站静态化) 程序代码量会比较多。而且如果设计不好,服务器端返回菜单内容的程序的可复用性也会很差。

但是在本文中你会看到用 php(做为现在的主流开发语言)RPC 来实现这种 ajax(动态网站静态化) 效果是多么的简单,并且还会具有非常高的可复用性。


本文以省市两级级联下拉菜单为例,为了举例方便,本文中采用的是 SQLite 数据库,因为这个文件型数据库比较容易部署,而且查询效率很高(当然创建该数据库的效率不高,但创建仅一次而已,该数据库在该程序中内容是不变的),不过服务器需要安装 SQLite 扩展。

这个数据库中的表只有 2 个,一个 province 表,一个 city 表。province 表中,只有 id 和 name 两个字段,分别是省份编号(主键)和省名。city 表中,有 id、name 和 pid 三个字段,id 是城市编号,name 是城市名,pid 是城市所在省的编号,与 province 表中的省份编号相对应。

创建该数据库的程序这里就不给出来了,它包含在后面提供的实例下载中。

下面来看看创建这个程序的服务器端有多么简单,为了提高可复用性,我们把服务器端分为了 2 个文件,一个是 function.php(做为现在的主流开发语言),另一个是 rpc.php(做为现在的主流开发语言)。function.php(做为现在的主流开发语言) 中定义了实际的远程调用函数,但是他们也可以作为服务器端的本地函数调用,你会发现他们跟服务器端的普通函数没有任何区别:

下载: function.php(做为现在的主流开发语言)
(做为现在的主流开发语言)
$sqlite = new SQLiteDatabase(area.db);
 
function get_province() {
    global $sqlite;
    $sql = "select * from province order by id";
    return $sqlite->arrayQuery($sql, SQLITE_ASSOC);
}
 
function get_city($pid) {
    global $sqlite;
    $pid = sqlite_escape_string($pid);
    $sql = "select * from city where pid = $pid order by id";
    return $sqlite->arrayQuery($sql, SQLITE_ASSOC);
}
?>
而 rpc.php(做为现在的主流开发语言) 更加简单,它是提供给客户端调用的接口,它只有 3 行语句:

下载: function.php(做为现在的主流开发语言)
(做为现在的主流开发语言)
require_once(function.php(做为现在的主流开发语言));
require_once(php(做为现在的主流开发语言)rpc_server.php(做为现在的主流开发语言));
new php(做为现在的主流开发语言)rpc_server(array(get_province, get_city));
?>
其中最后一句,就是指定哪些函数要暴露给客户端。只有指定的函数客户端才可以调用,这样可以保证服务器的安全性。

服务器端到此就创建完了。你会发现服务器端只负责把数据查询出来返回给客户端就完事了,其它的不做任何处理。

那么下面该看一看客户端了,客户端虽然很简单,但是我还是把它分成了两个文件,一个 js 文件,一个 html 文件,你会发现用 php(做为现在的主流开发语言)RPC,客户端都不需要用 php(做为现在的主流开发语言)

下载: area.js
// 创建 php(做为现在的主流开发语言)rpc 客户端对象 rpc
php(做为现在的主流开发语言)rpc_client.create(rpc);
 
var city = []; // 用于缓存已加载的城市数据
 
/*
 * 清除 select 中的选项,该方法可复用
 *
 * so: 要清除选项的 select 对象
 *
 */
function clear_select(so) {
    for (var i = so.options.length - 1; i > -1; i--) {

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/508640.htmlTechArticle级联下拉菜单就是从一个下拉菜单中选中一项后,相应的另一个下拉菜单的内容会随之改变。 一般来说,最简单的,就是每次选中都提交一...
Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
如何在PHP中实现SEO优化如何在PHP中实现SEO优化May 20, 2023 pm 01:30 PM

随着互联网的发展,SEO(SearchEngineOptimization,搜索引擎优化)已经成为了网站优化的重要一环。如果您想要使您的PHP网站在搜索引擎中获得更高的排名,就需要对SEO的内容有一定的了解了。本文将会介绍如何在PHP中实现SEO优化,内容包括网站结构优化、网页内容优化、外部链接优化,以及其他相关的优化技巧。一、网站结构优化网站结构对于S

如何在PHP中实现ERP系统如何在PHP中实现ERP系统May 20, 2023 pm 06:21 PM

随着电子商务和企业管理的发展,许多企业开始寻找更好的方法来处理其日常业务流程。ERP系统是一种能够整合企业各种业务流程的软件工具。它提供了全面的功能,包括生产、销售、采购、库存、财务等方面,帮助企业提高效率、控制成本和提高客户满意度。而在PHP编程语言中,也能够实现ERP系统,这就需要我们掌握一些基本的知识和技术。下面,我们将深入探讨如何在PHP中实现ERP

如何在PHP中实现CRM系统如何在PHP中实现CRM系统May 20, 2023 pm 12:31 PM

随着企业的发展,客户管理变得越来越重要。为了提高客户满意度和忠诚度,越来越多的企业采用客户关系管理系统(CRM)来帮助其管理客户关系。而PHP是一种流行的编程语言,因其简单易学、灵活和强大而被广泛应用于Web开发。那么,如何在PHP中实现CRM系统呢?本文将为您介绍实现CRM系统的步骤和技巧。Step1:需求分析在开始开发CRM系统之前,您需要进行需求分析

在PHP中如何实现物联网开发?在PHP中如何实现物联网开发?May 12, 2023 am 11:51 AM

随着物联网技术的发展和普及,越来越多的应用场景需要使用PHP语言进行物联网开发。PHP作为一种广泛应用于Web开发的脚本语言,它的易学易用、开发速度快、可扩展性强等特点,使其成为开发物联网应用的一种优秀选择。本文将介绍在PHP中实现物联网开发的常用技术和方法。一、传输协议和数据格式物联网设备通常使用TCP/IP或UDP协议进行数据传输,而HTTP协议是一个优

推荐哪款鼠标连点器软件使用效果较好?推荐哪款鼠标连点器软件使用效果较好?Jan 02, 2024 pm 07:54 PM

用什么鼠标连点器比较好对于连点器,我推荐使用AutoClicker。它是一款简单易用的鼠标连点软件,可以帮助你自动点击鼠标。原因是AutoClicker具有以下优点1.界面简洁直观,操作简单,适合初学者使用。2.支持自定义点击间隔时间,可以根据需要调整点击速度。3.可以设置点击次数或持续点击,满足不同的需求。4.免费软件,无需付费购买。如果你想使用连点器,可以尝试一下AutoClicker。生死狙击2罗技鼠标宏怎么设置以下是在生死狙击2中设置罗技鼠标宏的步骤:1.首先,确保你已经购买并安装了罗技

如何在PHP中实现验证码如何在PHP中实现验证码May 20, 2023 am 11:31 AM

随着互联网的不断发展,越来越多的网站需要使用验证码来保证安全性。验证码是一种借助人类能力而无法被计算机破解的认证技术,广泛应用于网站注册、登录、找回密码等功能中。下面将介绍如何使用PHP实现验证码功能。一、生成验证码图片验证码图片的生成是验证码功能的核心,需要生成一个随机字符,并将其渲染为图像展示给用户。在PHP中,可以使用GD库来生成图片。GD库是一种用于

使用扩展坞传输文件,T470s和T450s哪个更快?使用扩展坞传输文件,T470s和T450s哪个更快?Jan 03, 2024 pm 05:54 PM

t470s用扩展坞传文件快吗1相对较快2因为t470s使用扩展坞传文件可以同时进行多项任务,支持高速数据传输,可以快速完成文件传输。3当然,传输速度也会受到其他因素的影响,如文件大小、传输距离、传输内容等,需要根据具体情况进行衡量。但总的来说,使用扩展坞传文件还是相对较快及方便的。相对较快。因为T470s使用扩展坞可以连接更多的外设,包括外接硬盘、鼠标、键盘等,并且扩展坞有较快的传输速度,因此相对于其他传输方式,使用扩展坞传文件速度较快。同时,具体传输速度还需要考虑文件大小、硬件配置等因素。因此

如何在PHP中实现管家婆系统?如何在PHP中实现管家婆系统?May 12, 2023 am 08:12 AM

管家婆系统在现代企业管理中扮演着重要的角色,它不仅仅能够有效地提高企业的工作效率,还可以大大提高了企业的生产力和竞争力。与此同时,PHP作为一种广泛使用的动态脚本语言,也受到了许多企业的青睐。接下来,我们将探讨如何在PHP中实现管家婆系统,以提高企业的管理效率。一、了解管家婆系统管家婆系统是一种企业管理软件,主要用于管理公司的财务、销售、采购、仓库、人力资源

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

mPDF

mPDF

mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini