用mysql数据库动态构建php下拉列表
这就是我一直试图做的:用mysql数据库动态构建php下拉列表,php,mysql,ajax,Php,Mysql,Ajax,这就是我一直试图做的: 我有一个下拉列表,我用它来选择学期 选择学期后,在下一个下拉列表中,该学期的相关课程应显示为选项 每次我改变学期的时候都应该发生 数据库结构如下: 数据库-scifac 表-课程信息 列-courseID:varchar(主键),courseName varchar,学期整数 我试图通过使用教程使用ajax来实现这一点,但它不起作用 这是我的html页面 第一年 第一年及第二年 我的php页面(ajax example.php)如下所示 $dbhost = "lo
- 数据库-scifac
- 表-课程信息
- 列-courseID:varchar(主键),courseName varchar,学期整数
第一年
第一年及第二年
我的php页面(ajax example.php)如下所示
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "scifac";
//Connect to MySQL Server
mysql_connect($dbhost, $dbuser, $dbpass);
//Select Database
mysql_select_db($dbname) or die(mysql_error());
// Retrieve data from Query String
$sem = $_GET['year'];
$sem=(int)$sem;
$query = "SELECT courseID FROM course_info WHERE semester = '$sem'";
//Execute query
$qry_result = mysql_query($query) or die(mysql_error());
// Insert a new row in the table for each person returned
while($row = mysql_fetch_array($qry_result)){
$display_string.="<select>";
$display_string.="<option>$row[courseID]</option>";
}
echo "Query: " . $query . "<br />";
$display_string .= "</select>";
echo $display_string;
?>
$dbhost=“localhost”;
$dbuser=“root”;
$dbpass=“”;
$dbname=“scifac”;
//连接到MySQL服务器
mysql_connect($dbhost、$dbuser、$dbpass);
//选择数据库
mysql_选择_db($dbname)或die(mysql_error());
//从查询字符串中检索数据
$sem=$_GET['year'];
$sem=(int)$sem;
$query=“从课程信息中选择课程ID,其中学期=“$sem”;
//执行查询
$qry_result=mysql_query($query)或die(mysql_error());
//在表中为每个返回的人员插入新行
while($row=mysql\u fetch\u数组($qry\u result)){
$display_字符串=“”;
$display_string.=“$row[courseID]”;
}
回声“查询:”$查询“
”;
$display_字符串=“”;
echo$display_字符串;
?>
非常感谢您在这方面给予的善意考虑。您可以在您的ajax-example.php中尝试: 基本上,您需要将$_GET['sem']替换为$_GET['year']
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "scifac";
//Connect to MySQL Server
mysql_connect($dbhost, $dbuser, $dbpass);
//Select Database
mysql_select_db($dbname) or die(mysql_error());
// Retrieve data from Query String
$sem = $_GET['sem'];
//$sem=(int)$sem;
$query = "SELECT courseID FROM course_info WHERE semester = '".$sem."'";
//Execute query
$qry_result = mysql_query($query) or die(mysql_error());
$display_string.="<select>";
// Insert a new row in the table for each person returned
while($row = mysql_fetch_array($qry_result)){
$display_string.="<option value='".$row[courseID]."'>".$row[courseID]."</option>";
}
$display_string .= "</select>";
echo $display_string;
?>
$dbhost=“localhost”;
$dbuser=“root”;
$dbpass=“”;
$dbname=“scifac”;
//连接到MySQL服务器
mysql_connect($dbhost、$dbuser、$dbpass);
//选择数据库
mysql_选择_db($dbname)或die(mysql_error());
//从查询字符串中检索数据
$sem=$_GET['sem'];
//$sem=(int)$sem;
$query=“从课程信息中选择课程ID,其中学期=”“$sem。””;
//执行查询
$qry_result=mysql_query($query)或die(mysql_error());
$display_字符串=“”;
//在表中为每个返回的人员插入新行
while($row=mysql\u fetch\u数组($qry\u result)){
$display_string.=''.$row[courseID]。'';
}
$display_字符串=“”;
echo$display_字符串;
?>
为什么不从客户端提取整个数据集,并处理所有其他内容?我不太清楚你的意思。如果我不是很打扰你,请你就你的答案提供一点进一步的知识。有这么多教程,但其中一些会重复访问数据库。我的想法的关键是,它只需要访问数据库一次,收集整个数据集,然后将其编码为json。但它仍然没有给我正确的输出。实际上什么都没有发生。为什么我需要更改它,因为sem没有输入,第一个下拉列表是years,但您在javascript变量queryString=“?sem=“+sem;
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "scifac";
//Connect to MySQL Server
mysql_connect($dbhost, $dbuser, $dbpass);
//Select Database
mysql_select_db($dbname) or die(mysql_error());
// Retrieve data from Query String
$sem = $_GET['sem'];
//$sem=(int)$sem;
$query = "SELECT courseID FROM course_info WHERE semester = '".$sem."'";
//Execute query
$qry_result = mysql_query($query) or die(mysql_error());
$display_string.="<select>";
// Insert a new row in the table for each person returned
while($row = mysql_fetch_array($qry_result)){
$display_string.="<option value='".$row[courseID]."'>".$row[courseID]."</option>";
}
$display_string .= "</select>";
echo $display_string;
?>