使用数据库中的项目填充html选择标记的最佳,最整洁的方法是什么?
例如,如果我有以下php:
$sql="SELECT a.athleteId, a.fName, a.lName FROM Athletes a, SupportStaff s, StaffAthletes sa WHERE sa.staffId = $id AND a.athleteId = sa.athleteId";
$result=mysql_query($sql);
然后:
我有以下内容,但它不起作用 - 它只显示一个空白页:
<?php
error_reporting(E_ALL)
session_start();
//connect to database
function connect() {
$dbh = mysql_connect ("localhost", "d", "a") or die ('I cannot connect to the database because: ' . mysql_error());
mysql_select_db("PDS", $dbh);
return $dbh;
}
if(isset($_SESSION['username'])){
$dbh = connect();
$id = $_SESSION['id'];
$sql="SELECT a.athleteId, a.fName, a.lName FROM Athletes a, SupportStaff s, StaffAthletes sa WHERE sa.staffId = $id AND a.athleteId = sa.athleteId";
$result=mysql_query($sql);
$options="";
$i = 1;
while ($row=mysql_fetch_array($result)) {
$f=$row["fName"];
$l=$row["lName"];
$options.="<OPTION VALUE=\"$i\">".$f.' '.$l."</OPTION>";
$i++;
}
?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script src = "jQuery.js"></script>
<script>
$(document).ready(function(){
$("#go").click(function(e){
if($("#selectathlete option:selected").val() == "0"){
alert("Please Select An Athlete");
}else{
//set hidden textfield
$("form#profile").submit();
}
});
});
</script>
<title>Personal Diary System - Home Page</title>
</head>
<body>
<h1>Home Page</h1>
<p>Select An Athlete:
<SELECT ID ="selectathlete" NAME="athletes">
<OPTION VALUE="0">Choose</OPTION>
<?php echo($options);?>
</SELECT>
</p>
<form id = "profile" name="input" action="viewathleteprofile.php" method="post">
<input type = "hidden" id = "athleteId">
<input type = "button" name = "go" id = "go" value = "Go">
</form>
</body>
</html>
我已经调试了好几个小时,但它不起作用......
答案 0 :(得分:1)
答案 1 :(得分:1)
当我遇到服务器500错误时,我会转到http://phpcodechecker.com/并粘贴到页面中。当我按照你现在的代码那样做时,它抱怨失踪;在第2行。
另一个提示:您可以将此语法样式用于稍微复杂的输出: $ out =“text {$ var} {$ var2} {$ array ['index']}”。DEFINITION_ONE
令人惊讶的是,这适用于我们希望输出为“值”的html属性,例如 $ options。=“{$ i} {$ f}
答案 2 :(得分:0)
<?php
”。echo 'hello';
”以查看是否打印。这似乎微不足道,但是你似乎已经粘贴了完整的代码,我只想确定。
答案 3 :(得分:0)
也许没有设置$ _SESSION ['用户名']?在if语句中没有右括号,因此如果isset($ _ SESSION ['username'])返回false,则整个页面永远不会显示。