Table of Contents
目标
方案
部分代码
Home Backend Development PHP Tutorial html+js+PHP(使用了smarty模板技术)+mysql实现二级动态下拉列表(select)

html+js+PHP(使用了smarty模板技术)+mysql实现二级动态下拉列表(select)

Jun 23, 2016 pm 01:38 PM

目标

需要的是在选择第一个select下拉列表后,将选择的内容传送到PHP页面。在PHP页面中通过查询数库,得到第二个select需要显示的option的值,并在select中显示。

方案

1  利用ajax上传数据到PHP,由于利用了smarty模板技术,可以直接给模板中的变量赋值,这样就可以不用通过ajax接收返回值再经过处理输出了。

由于这个PHP页面没有包含在其他PHP页面里,是独立的。这样就造成无法赋值。



2  通过ajax接收返回值,这里的返回值就是以上数据库查询的结果。

    通过json_encode()将其转化为json格式,然后输出。

    js中将responseText字符串转化为json格式??JSON.parse()函数实现。

    遍历数组,并添加option给select。


本次使用的是方案2



部分代码

JS代码:

function get_value(form){	var scid=sub_class.value;//运算类型号//---------------------------------------//使用ajax发送选中的运算类	var url = "query_subject.php?scid="+scid;	xmlhttp.onreadystatechange = Content;//	var url = "query_subject.php?";	xmlhttp.open("GET",url,true);	xmlhttp.send(null);//---------------------------------------	function Content(){		if(xmlhttp.readyState==4){			if(xmlhttp.status==200){				var sel=document.getElementById("sub_name");				var rst=JSON.parse(xmlhttp.responseText);//将字符串转化为数组				for(var i=0; i<rst.length i var opt="document.createElement('option');" opt.value="rst[i].sid;" opt.text="rst[i].s_name;" try sel.add standards compliant catch ie only else alert>    <p class="sycode">     <br>    </p>    PHP代码:    <p class="sycode">   </p>
<pre name="code" class="sycode">?phpheader ( "Content-type: text/html; charset=UTF-8" ); 	//设置文件编码格式require_once("system/system.inc.php");  						//包含配置文件$scid=$_GET['scid'];$rst=null;if($scid){	$sql="select sid, s_name 	      from subject	      where scid='$scid'";	$rst=$admindb-&gt;ExecSQL($sql, $conn);}echo(json_encode($rst));?&gt;
Copy after login




 

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot Article Tags

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

11 Best PHP URL Shortener Scripts (Free and Premium) 11 Best PHP URL Shortener Scripts (Free and Premium) Mar 03, 2025 am 10:49 AM

11 Best PHP URL Shortener Scripts (Free and Premium)

Working with Flash Session Data in Laravel Working with Flash Session Data in Laravel Mar 12, 2025 pm 05:08 PM

Working with Flash Session Data in Laravel

Build a React App With a Laravel Back End: Part 2, React Build a React App With a Laravel Back End: Part 2, React Mar 04, 2025 am 09:33 AM

Build a React App With a Laravel Back End: Part 2, React

Simplified HTTP Response Mocking in Laravel Tests Simplified HTTP Response Mocking in Laravel Tests Mar 12, 2025 pm 05:09 PM

Simplified HTTP Response Mocking in Laravel Tests

cURL in PHP: How to Use the PHP cURL Extension in REST APIs cURL in PHP: How to Use the PHP cURL Extension in REST APIs Mar 14, 2025 am 11:42 AM

cURL in PHP: How to Use the PHP cURL Extension in REST APIs

12 Best PHP Chat Scripts on CodeCanyon 12 Best PHP Chat Scripts on CodeCanyon Mar 13, 2025 pm 12:08 PM

12 Best PHP Chat Scripts on CodeCanyon

Announcement of 2025 PHP Situation Survey Announcement of 2025 PHP Situation Survey Mar 03, 2025 pm 04:20 PM

Announcement of 2025 PHP Situation Survey

Notifications in Laravel Notifications in Laravel Mar 04, 2025 am 09:22 AM

Notifications in Laravel

See all articles