【问题标题】:populate text field(s), in a form, based on dynamic drop box.基于动态下拉框在表单中填充文本字段。
【发布时间】:2013-02-13 16:40:28
【问题描述】:

我要提前感谢您抽出时间来帮助我,因为我真的被困住了。

我有两张桌子。员工(Employee_ID、First_name、Last_name、Address 等)和培训(Training_ID、Employee_ID、First_name、Last_name、Training_type)。

对于培训表,我有一个表格,用于为员工分配培训类型。

我希望在我的表单中有一个名为 selectemployee_ID 的下拉框,其中包含employee_ID 在员工表中的值,它是该表中的外键。

一旦选择了一个选项,我希望在表单中更新两个文本字段,名字和姓氏。

我在尝试实现可以​​执行此操作的代码时遇到很多问题,我不知道是否应该添加 java。我将在下面展示我的基本代码,向您展示它现在的样子。

html表单

<html>
<head>
<link type="text/css" rel="stylesheet" href="style.css"/>
<title>Training</title>
</head>

<body>
<div id="content">  
<h1 align="center">Add Training</h1>

<form action="inserttraining.php" method="post">
<div>
<p>Training ID: <input type="text" name="Training_ID"></p>
<p>Employee ID: <input type="text" name="Employee_ID"></p>
<p>First name: <input type="text" name="First_name"></p>
<p>Last name: <input type="text" name="Last_name"></p>
<p>
Training required?
<select name="Training">
<option value="">Select...</option>
<option value="Customer Service">Customer Service</option>
<option value="Bailer">Bailer</option>
<option value="Reception">Reception</option>
<option value="Fish & meat counters">Fish & meat counters</option>
<option value="Cheese counters">Cheese counters</option>
</select>
</p>
<input type="submit">
</form>
</div>

</body>
</html>

我的 php 代码将数据存储到数据库中。

<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("hrmwaitrose", $con);

$sql="INSERT INTO training (Training_ID, Employee_ID, First_name, Last_name, Training)
VALUES
('$_POST[Training_ID]','$_POST[Employee_ID]','$_POST[First_name]','$_POST[Last_name]','$_PO    ST[Training]')";


if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";

mysql_close($con);
?>

正如我在前面所说的那样,这真是要了我的命。

【问题讨论】:

    标签: php javascript html mysql phpmyadmin


    【解决方案1】:

    首先,我认为您的数据库中有一些数据重复。当您在 Training 表中使用外键时,您不需要同时存储员工的名字和姓氏,因为该信息位于 Employee 表中。数据重复通常不是一个好主意,因为它可能会导致数据不一致。

    要解决您的问题,您首先需要在 HTML 表单中使用 Employee_ID 编号填充下拉列表。为简单起见,我建议您将该页面更改为 PHP 页面,并添加以下代码来替换您的 Employee_ID 文本框。

    <select id="Employee_ID">
    <?php
        $result = mysql_query("SELECT Employee_ID FROM Employee");
        while ($row = mysql_fetch_row($result)) {
            echo "<option value=$row[0]>$row[0]</option>";
        }
    ?>
    </select>
    

    然后您将需要实现一些 AJAX 以便用员工姓名填充文本框。您可以通过编写一些处理下拉列表的onChange 事件的Javascript 来做到这一点。然后,此 Javascript 将需要向 PHP 页面发送请求,以获取特定 Employee_ID 的相应 First_NameLast_Name

    【讨论】:

    • 对不起,作为一个新手,我对你所说的感到困惑。你刚刚发给我的代码,我应该在哪里插入?我希望有一个员工 ID 下拉框,我可以在其中访问存储在数据库中的 IDS,谢谢您的帮助
    • 上面的代码应该在你的表单中替换你的Employee_ID文本框。
    • 由于某种原因它不起作用。形成了一个下拉框,但它真的很小,下拉框中没有出现任何选项
    • 您还需要先连接到您的数据库。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-16
    • 2013-07-03
    • 1970-01-01
    • 2017-10-27
    • 2021-12-24
    • 2011-12-09
    • 1970-01-01
    相关资源
    最近更新 更多