0

我正在使用 PHP 构建一个 CRUD 应用程序,我需要一些帮助来简化用户体验。基本上,用户使用预先分配的 ID 号创建一个新的“项目”。此 ID 号用作主键。提交表单后,会在我的数据库的“项目”表中创建一行。

创建项目后,我想使用另一种形式将存储事务添加到项目中(出于上下文目的,我正在跟踪仓库存储)。最初,打算让用户重新添加 ID 号(创建项目时输入的主键),但如果 ID 号输入错误,则有很多人为错误的机会。

当前任务:我想在我的表单上创建一个“选择”元素,列出所有已输入的 ID 号。然后,我可以从该下拉列表中选择一个项目并自动应用交易。我怎样才能做到这一点?

预先感谢您的帮助!

4

2 回答 2

1

首先,您必须进行查询(使用 PHP)从该数据库中提取项目表中所有项目记录的列表。当您对此进行查询时,您将在项目表中将结果集作为每个项目的数组,您可以使用循环遍历该数组以填充下拉框。

首先获取项目(假设id您用于下拉选择的列名):

<php $projects = mysqli_query($db, "SELECT id FROM PROJECTS_TABLE"); ?>

然后,显示下拉选择框:

<form name="formWhatever">
...
<select name="project_id">
<?php foreach ($projects as $project) { 
      $result = mysqli_fetch_array($projects, MYSQLI_ASSOC)?>
  <option value="<?php echo $result[id]; ?>">Project #<?php echo $result[id]; ?></option>
<?php } ?>
</select>
...
</form

我想我也喜欢@pajaja 使用索引页面来消除长下拉框的想法。

于 2013-08-04T23:15:06.550 回答
0

那么你需要做的就是你所描述的,所以我不确定我是否完全理解你的问题。在表单中创建一个选择菜单并用所有项目填充它。您需要首先从数据库中获取所有项目 ID 及其名称,并为每个项目 ID 生成 HTML 选项。

 <select name="project_id">
   <option value="1">Project 1</option>
   <option value="2">Project 2</option>
   <option value="3">Project 3</option>
   <option value="4">Project 4</option>
   ...
   <option value="n">Project n</option>
 </select>

在 PHP 中,每个项目都会有类似的东西

echo "<option value='{$project['project_id']}'>{$project['name']}</option>";

然后使用$_POST['project_id']获取project_id要添加存储事务的项目。


提示: 为什么要预先分配项目 ID?您如何确保不会两次发出相同的预分配密钥?您可以将数据库列设置为在每次插入时自动递增。此外,我认为最好先显示所有项目的列表,如索引页面,然后当用户单击所需项目时,您向他展示添加存储信息的选项(或您计划的任何其他内容)。有一个通用的表格然后选择其中的项目会起作用,但如果有很多项目会变得复杂,我真的看不出这种方法的优势。

于 2013-08-04T17:22:45.473 回答