php - mysql数据库使用已经在html/php中输入的数据制作下拉菜单

标签 php mysql html database

我创建了一个数据库,其中包含 3 个表,分别是 spusername、splocation、sprecord。 spusername 有 id、splocation_id、lastname、firstname。我希望能够有一个下拉菜单,它从数据库中提取了 id、lastname、firstname,并且在下拉菜单中它只显示了所有姓氏、名字的列表。然后,一旦我选择了一个人,我就会有另一个下拉列表,其中包含培训类型。然后当我点击提交时,它会在另一个表中生成一条记录,其中包含人员 ID 和培训记录。所以当我进行搜索时,它会拉出用户和该人的培训记录....我已经在 .php 中创建了一个提交页面,它为新用户发送姓氏、名字、splocation_id,我想我可以创建执行我想要的搜索,但我从来没有在下拉列表中输入从数据库生成的值的数据。

编辑代码:在 Vegard 编码的帮助下,我得到了这个,现在经过几次试验和错误后它工作得很好。谢谢!

代码:

<?php 
    if (isset($_REQUEST['Submit'])) { 
    $sql = "INSERT INTO $db_table(spusername_id,sptraining_id) values ('".mysql_real_escape_string(stripslashes($_REQUEST['spusername_id']))."','".mysql_real_escape_string(stripslashes($_REQUEST['sptraining_id']))."')";
    if($result = mysql_query($sql ,$db)) { 
    echo '<h1>Thank you</h1>Your information has been entered into the database<br><br>'; 
    } else { 
    echo "ERROR: ".mysql_error(); 
    } 
    } else { 
?> 
<h1>Add Training Information To Database</h1><hr> 
<br><br>
<form method="post" action=""> 
<select name="spusername_id">
    <option value="default">Select Employee</option>
<?php
    include("connectspusers.php"); /*file where you have stored your DB conn. settings*/
    $result = mysql_query('SELECT id, lastname, firstname FROM spusername ORDER BY lastname ASC') or die (mysql_error()); 

    while ($row = mysql_fetch_array($result)) {
        echo '<option value="' . $row['id'] . ' ' . $row['lastname'] . ' ' . $row['firstname'] . '">' . $row['lastname'] . ', ' . $row['firstname'] . '</option>';
    }
?>
</select>

<select name="sptraining_id">
    <option value="default">Select Training</option>
<?php
    include("connectsptraining.php"); /*file where you have stored your DB conn. settings*/
    $result = mysql_query('SELECT id, trainingtype, level FROM sptraining ORDER BY level ASC') or die (mysql_error()); 

    while ($row = mysql_fetch_array($result)) {
        echo '<option value="' . $row['id'] . ' ' . $row['trainingtype'] . ' ' . $row['level'] . '">' . $row['trainingtype'] . ' - ' . $row['level'] . '</option>';
    }
?>
</select>
<br><br>
<input type="submit" name="Submit" value="Submit"> 
</form> 
<?php 
} 
?> 

最佳答案

是这样的吗?

<select name="pulldown1">
    <option value="default">Choose an option</option>
    <?php
    include("connect.php"); /*file where you have stored your DB conn. settings*/
    $result = mysql_query('SELECT id, lastname, firstname FROM spusername ORDER BY firstname ASC') or die (mysql_error()); 

    while ($row = mysql_fetch_array($result)) {
    echo '<option value="' . htmlentities($row['id'], ENT_QUOTES) . ' ' . htmlentities($row['lastname'], ENT_QUOTES) . ' ' . htmlentities($row['firstname'], ENT_QUOTES) . '">' . htmlentities($row['lastname'], ENT_QUOTES) . ', ' . htmlentities($row['firstname'], ENT_QUOTES) . '</option>';
    }
    ?>
</select>

<select name="pulldown2">
    <option value="default">Choose and option</option>
    <?php

    $result = mysql_query('SELECT traingtype FROM trainingtable ORDER BY trainingname ASC') or die (mysql_error()); 

    while ($row = mysql_fetch_array($result)) {
        echo '<option value="' . $row['trainingtype'] . '">' . $row['trainingtype'] . '" "' . $row['lastname'] . '</option>';
    }
    ?>
</select>

这将产生两个下拉菜单,其中第一个下拉菜单列出了用逗号+空格分隔的用户姓氏和名字,第二个将列出不同类型的培训。提交的 ID 仅通过变量发送,不会显示给用户。

从 pulldown1 中的变量中提取值时,只需使用 explode:

$userdetails = $_POST['pulldown1'];
$values = explode(" " $userdetails);
$ID = $values[0];
$lastname = $values[1];
$firstname = $values[2];

尚未测试代码,因此可能需要调整,当然您需要更改与实际数据库行名相对应的变量名称。

编辑:在您的代码中,您必须使用 $row 而不是 $row2。

其次,而不是这个:

<option value='{$id}'>{$lastname},{$firstname}</option>

使用这个:

<option value="' . $row['id'] . '">' . $row['lastname'] . ', ' . $row['firstname'] . '</option>

关于php - mysql数据库使用已经在html/php中输入的数据制作下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7430536/

相关文章:

mysql - 将逗号分隔数据重写为结构化

mysql - mysql修改ID的方法

javascript - 通过 CSS 实现多 Pane 滚动

php - 如何将单个 php 变量返回给 ajax

php - fatal error :调用未定义的方法 Google_IO_Curl::authenticatedRequest()

PHP & MySQL : Query from 2 tables

javascript - 带逗号分隔符的 ng-repeat 输入

php - 阻止用户未登录时访问

php - 在 WordPress 上运行 mysql 命令

html - 如何并排放置 div?