使用mysql和php填充HTML SELECT

时间:2011-08-17 15:41:41

标签: php javascript jquery mysql html

使用数据库中的项目填充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);

然后:

  1. 如何使用从关系中检索到的元组列表填充下拉菜单?
  2. 如何整合php,html和jQuery?
  3. 我有以下内容,但它不起作用 - 它只显示一个空白页:

    <?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>
    

    我已经调试了好几个小时,但它不起作用......

4 个答案:

答案 0 :(得分:1)

  1. 您应该尝试error_reporting(E_ALL)您的网页,这样您就可以看到您的网页遇到的所有错误。
  2. 什么是connect()?你的意思是mysql_connect()
  3. (有点无关)你不应该使用mysql_*函数,使用MySQLi(好)或PDO(太棒了)。

答案 1 :(得分:1)

当我遇到服务器500错误时,我会转到http://phpcodechecker.com/并粘贴到页面中。当我按照你现在的代码那样做时,它抱怨失踪;在第2行。

另一个提示:您可以将此语法样式用于稍微复杂的输出:   $ out =“text {$ var} {$ var2} {$ array ['index']}”。DEFINITION_ONE

令人惊讶的是,这适用于我们希望输出为“值”的html属性,例如   $ options。=“{$ i} {$ f}

答案 2 :(得分:0)

  1. 确保您的文件是.php,而不是.html
  2. 请勿忘记页面顶部的“<?php”。
  3. 尝试在页面顶部写上“echo 'hello';”以查看是否打印。
  4. 这似乎微不足道,但是你似乎已经粘贴了完整的代码,我只想确定。

答案 3 :(得分:0)

也许没有设置$ _SESSION ['用户名']?在if语句中没有右括号,因此如果isset($ _ SESSION ['username'])返回false,则整个页面永远不会显示。