Ausführliche Erläuterung der Wirkung des durch php+mysql_php skills implementierten sekundären Verknüpfungsmenüs

不言
Freigeben: 2023-02-28 09:32:01
Original
4858 Leute haben es durchsucht

Das Beispiel in diesem Artikel beschreibt den sekundären Linkage-Menüeffekt, der durch PHP+MySQL erreicht wird. Teilen Sie es wie folgt als Referenz mit allen:

<!--php+mysql二级联动-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>生成学院专业级联下拉菜单测试 </title>
</head>
<body>
<? //
/***********************************************
** 功 能: php+mysql+javascript实现学院专业二级级联下拉框
** 数据库:数据库名( dms)、数据表( colleges、 majors)
** 表 colleges中字段: college_id( id编号)、 name(学院名)
** 表 majors中的字段: major_id( id编号)、 college_id(学院 ID)、 name(学院名)
** version 1.0
** 作 者: wu yaowen
***********************************************/
//****************** 连接选择数据库 ***************
$link = mysql_connect("localhost", "root", "123456")
 or die("Could not connect : " . mysql_error());
mysql_select_db("dms") or die("Could not select database");
//******************提取学院信息 ******************
$queryCol = "select * from colleges order by college_id ";
mysql_query("SET NAMES &#39;gb2312&#39;");
$result1 = mysql_query($queryCol) or die("Query failed : " . mysql_error());
$colleges = array();
while( $row1 = mysql_fetch_array($result1) )
{
 $colleges[] = $row1;
}
//print_r ($forum_data);
mysql_free_result($result1);
//**************获取专业信息 **************  
$queryMaj = "select * from majors order by college_id desc";
mysql_query("SET NAMES &#39;gb2312&#39;");
if( !($result2 = mysql_query($queryMaj)) )
{
 die(&#39;Could not query t_city list&#39;);
}
$majors = array();
while( $row2 = mysql_fetch_array($result2) )
{
 $majors[] = $row2;
}
mysql_free_result($result2);
?>
<!--************ JavaScript处理 college-onChange *************-->
<script language = "JavaScript">
var majorCount; // 存储专业记录条数
// form_majors[] 储存专业 major数据,如 {(1,1,电子商务 ),(4,1,计算机科学 ),(3,2,古典文学 )}
form_majors = new Array();
<?php
  $num2 = count($majors); // $num2 获取专业表中记录的个数
?>
  majorCount = <?php echo $num2;?>;
<?
  for($j=0;$j<$num2;$j++) // 从 0开始取出上面 majors[]中存储的专业数据填充数组
{
?>
  form_majors[<?echo $j;?>] = new Array("<?echo $majors[$j][&#39;major_id&#39;];?>","<?echo $majors[$j][&#39;college_id&#39;];?>","<?echo $majors[$j][&#39;name&#39;];?>");
<?php
}
?>
function changeCollege(college_id)
{
  document.stu_add_form.major.length = 0;
  var id=id;
  var j;
  document.stu_add_form.major.options[0] = new Option(&#39;==选择专业 ==&#39;,&#39;&#39;); // label的 value为空 &#39; &#39;
  for (j=0;j < majorCount; j++) // 从 0开始判断
  {
   if (form_majors[j][1] == college_id) // if college_id等于选择的学院的 id
   {
      document.stu_add_form.major.options[document.stu_add_form.major.length] = new Option(form_majors[j][2], form_majors[j][0]);
   }
  }
}
</script>
<!--********************页面表单 *************************-->
<form name="stu_add_form" method="post">
选择: <select name="college" onChange="changeCollege(document.stu_add_form.college.options[document.stu_add_form.college.selectedIndex].value)" size="1">
<option selected>==请选择学院 ==</option>
<?php
$num = count($colleges);
for($i=0;$i<$num;$i++)
{
?>
<option value="<?echo $colleges[$i][&#39;college_id&#39;];?>"><?echo $colleges[$i][&#39;name&#39;];?></option>
<?
}
?>
</select>
<select name="major">
<option selected value="">==选择专业 ==</option>
</select>
</form>
</body>
</html>
Nach dem Login kopieren

SQL-Anweisung:

--
-- 表的结构 `colleges`
--
CREATE TABLE IF NOT EXISTS `colleges` (
`college_id` int(8) NOT NULL auto_increment COMMENT &#39;学院编号自动增加&#39;,
`name` varchar(40) NOT NULL COMMENT &#39;学院名称&#39;,
PRIMARY KEY (`college_id`),
UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312 AUTO_INCREMENT=7 ;
--
-- 导出表中的数据 `colleges`
--
INSERT INTO `colleges` (`college_id`, `name`) VALUES
(4, &#39;化学与化工学院&#39;),
(1, &#39;计算机与信息科学学院&#39;),
(6, &#39;美术学院&#39;),
(2, &#39;文学院&#39;),
(5, &#39;音乐学院&#39;),
(3, &#39;政治与公共管理学院&#39;);
--
-- 表的结构 `majors`
--
CREATE TABLE IF NOT EXISTS `majors` (
`major_id` int(8) NOT NULL auto_increment COMMENT &#39;专业号,自动增加&#39;,
`name` varchar(40) NOT NULL COMMENT &#39;专业名&#39;,
`college_id` int(8) default NULL COMMENT &#39;所在学院&#39;,
`counsellor_id` int(10) default NULL COMMENT &#39;辅导员&#39;,
PRIMARY KEY (`major_id`),
UNIQUE KEY `college_id` (`college_id`,`counsellor_id`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312 AUTO_INCREMENT=8 ;
--
-- 导出表中的数据 `majors`
--
INSERT INTO `majors` (`major_id`, `name`, `college_id`, `counsellor_id`) VALUES
(1, &#39;电子商务&#39;, 1, 1),
(2, &#39;音乐视唱&#39;, 5, 1),
(3, &#39;古典文学&#39;, 2, 1),
(4, &#39;计算机科学&#39;, 1, NULL),
(5, &#39;自动化&#39;, 1, NULL),
(6, &#39;现代文学&#39;, 2, NULL),
(7, &#39;新闻写作&#39;, 2, NULL);
Nach dem Login kopieren

Ich hoffe, dieser Artikel wird für alle hilfreich sein, die sich mit PHP-Programmierung befassen.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage