在很多场景中,我们可能需要创建一个下拉输入,可以显示与数据库当前状态一致的所有选项。这种形式的输入在现实生活中被多次使用,以下示例可能有助于理解相同的内容。
- 一组拥有唯一注册号的学生。
- 一组分支名称及其分支 ID。
- 特定产品必须属于的类别列表。
在本文中,我们将创建一个下拉列表,其中包含特定产品必须属于的类别列表。
方法:在这些示例中的每一个中,如果我们使用从数据库中获取数据的下拉菜单,用户将能够更准确地输入数据并且 UI 将更加用户友好。
我们需要以下
- 一个包含类别表和另一个产品表的数据库,该表具有指向特定产品所属类别 ID 的外键。
- 接受数据的 HTML 表单。
脚步:
数据库创建:
- 从 XAMPP 控制面板打开 Apache 和 MySQL。
- 通过单击新按钮创建一个数据库“example_store”。
- 输入数据库名称,然后单击“创建”。
- 单击 SQL 选项卡并粘贴以下代码,然后单击“GO”。
MySQL查询:
-- Table structure for table `category`
CREATE TABLE `category` (
`Category_ID` int(11) NOT NULL,
`Category_Name` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Dumping data for table `category`
INSERT INTO `category` (`Category_ID`, `Category_Name`) VALUES
(1, 'Category A '),
(2, 'Category B');
-- Table structure for table `product`
CREATE TABLE `product` (
`Product_ID` int(11) NOT NULL,
`product_name` varchar(255) NOT NULL,
`category_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Dumping data for table `product`
INSERT INTO `product` (`Product_ID`, `product_name`, `category_id`) VALUES
(1, 'Product A1', 1),
(2, 'Product A2', 1),
(3, 'Product B1', 2);
-- Primary Key Constraints
ALTER TABLE `category`
ADD PRIMARY KEY (`Category_ID`);
ALTER TABLE `product`
ADD PRIMARY KEY (`Product_ID`),
ADD KEY `Category_constraint` (`category_id`);
-- AUTO_INCREMENT for table `category`
ALTER TABLE `category`
MODIFY `Category_ID` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
-- AUTO_INCREMENT for table `product`
ALTER TABLE `product`
MODIFY `Product_ID` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;
-- Foreign Key Constraints
ALTER TABLE `product`
ADD CONSTRAINT `Category_constraint` FOREIGN KEY (`category_id`)
REFERENCES `category` (`Category_ID`) ON DELETE
CASCADE ON UPDATE CASCADE;
示例:我们在htdocs 中名为“example_store”的文件夹中创建一个PHP文件,并创建以下表单。 PHP网页,可以在浏览器中访问“localhost/example_store/form.php”。 PHP”。
PHP
alert("Product added successfully")';
}
}
?>
输出:
- 下拉列表当前仅显示类别 A 和类别 B。如果我们在数据库中添加更多类别,我们会将它们显示在下拉列表中。在表类别中插入更多值后。
- 在重新加载网页时
- 插入新产品:我们可以通过以下方式插入产品 C1。
- 我们收到一条警报消息,并且表产品已更新