基于动态下拉框在表单中填充文本字段。

时间:2013-02-27 18:24:33

标签: php javascript html mysql phpmyadmin

我想提前感谢你抽出时间帮助我,因为我真的被卡住了。

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

对于培训表,我有一份表格,填写表格,为员工分配培训类型。

在我的表单中我想要的是有一个名为select employee_ID的下拉框,其中employee表中有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);
?>

正如我上面所说的那样,这是在扼杀我。

1 个答案:

答案 0 :(得分: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,以便用Employee的名称填充文本框。您可以通过编写一些处理下拉列表的onChange事件的Javascript来完成此操作。然后,此Javascript将需要向PHP页面发送请求以获取特定First_Name的相应Last_NameEmployee_ID