0

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

我有两张桌子。员工(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);
?>

正如我在前面所说的那样,这让我很生气。

4

1 回答 1

0

首先,我认为您的数据库中有一些数据重复。当您在 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 页面发送请求以获取特定First_Name的.Last_NameEmployee_ID

于 2013-02-27T18:31:37.053 回答