您好:
我照您的程式做,但我选了第一层的系所类别条件后,第二个条件的地方会变灰的,不会出现教师名称,状况如
http://140.121.175.3...est2.php网址所示。
在test2.php及action.php都有加入下面那一行的指令
<?php require_once('Connections/cosar.php'); ?>
并且在Connections资料夹内亦有cosar.php这个档案
test2.php程式码如下
<?php require_once('Connections/cosar.php');//引入资料库连结档 ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>国立台湾海洋大学海洋科学与资源学院教师着作目录</title>
<script type="text/javascript" src="jquery/jquery.js"></script>
<script type="text/javascript" src="jquery/jquery.cascade.js"></script>
<script type="text/javascript" src="jquery/jquery.cascade.ext.js"></script>
<script type="text/javascript" src="jquery/jquery.templating.js"></script>
</head>
<body>
<select name="faculty[]" id="faculty">
<option value="">系所</option>
<?php
mysql_select_db($database_cosar, $cosar);
$query = sprintf("SELECT DISTINCT faculty FROM ref");
$result = mysql_query($query, $cosar);//资料库设定结束
//捞出资料库厂商类别的值
while ($row = mysql_fetch_assoc($result)) { echo '<option value="' . $row["faculty"] . '">' . $row["faculty"] . '</option>' . "\n"; }?></select>
<select name="name_c[]" id="name_c"><option value="">教师</option></select>
<script>
jQuery(document).ready(function(){ $('#name_c').cascade('#faculty', {
ajax: { type: "GET", url: 'action.php',
data: { act: 'first', val: $('#faculty').val() } },
template: function(item) { return "<option value='" + item.Value + "'>" + item.Text + "</option>"; },
match: function(selectedValue) { return this.When == selectedValue; } });});</script>
</body>
</html>
action.php程式码如下:
<?php require_once('Connections/cosar.php'); ?>
<?php
header('Content-Type:text/html;charset=utf-8');
// 资料库设定
mysql_select_db($database_cosar, $cosar);
if (!empty($_GET['act'])) {
$action = $_GET['act'];
}
if (!empty($_GET['val'])) {
$parentId = $_GET['val'];
}
$list = '['; switch ($action) {
case 'first':
$query = sprintf("SELECT DISTINCT name_c FROM ref WHERE faculty = '$parentId' AND name_c!='' ORDER BY name_c ASC");
$result = mysql_query($query, $cosar);
while ($row = mysql_fetch_assoc($result)) {
$list .= '{\'When\':\'' . $parentId . '\',\'Value\':\'' . $row["name_c"] . '\',\'Text\':\'' . $row["name_c"] . '\'},';
}
break;
}
$list .= ']';
echo $list;
?>
资料格式栏位如下:
栏位 型态 校对 属性 Null 预设值 附加 执行
refID int(10) 否 auto_increment
fac_num int(10) 是 NULL
tea_num int(10) 是 NULL
name_c varchar(255) utf8_general_ci 是 NULL
name_e varchar(255) utf8_general_ci 是 NULL
faculty varchar(255) utf8_general_ci 是 NULL
Year varchar(255) utf8_general_ci 是 NULL
Month varchar(255) utf8_general_ci 是 NULL
Journal varchar(255) utf8_general_ci 是 NULL
Title varchar(255) utf8_general_ci 是 NULL
volumn varchar(255) utf8_general_ci 是 NULL
page varchar(255) utf8_general_ci 是 NULL
实在找不出问题到底出在那里。另外这个方式除了能做动态下拉式选单,相关的档案是否会跟着变动,如选择某一系所后,列出该系所所有教师,再点选老师,则会将该位老师的相关着作都列出,语法会很困难吗。
敬请赐教,谢谢。