javascript - 基于 mysql 创建的选择表单添加最多 5 个选择字段

标签 javascript html mysql forms

我有一个相当复杂的表单,其中用户数据输入到 MySQL 数据库中。用户的 Angular 色可以是经理或助理。我想在经理和助理之间建立联系。一名经理可以有 1 名以上的助理。一名助理可以为多名经理工作。

据我所知,我可以根据 Angular 色显示一条选择线。因此,如果 Angular 色是经理,则会从 MySQL 数据库中所有具有助理 Angular 色的用户中创建一条选择行,反之亦然。

这工作正常,但如何通过单击按钮为最多 5 个助理(或经理)创建一个新字段,并以这样的方式再次从数据库中生成一个选择行,并减去用户)已经选择了?

为了揭示正确的字段,我使用这个脚本:

<script type="text/javascript" src="//code.jquery.com/jquery-1.9.1.js"></script>

<script type='text/javascript'>//<![CDATA[
$(window).load(function(){
$('#role').on('change', function() {
  var selection = $(this).val();
  switch (selection) {
    case "Manager":
      $("#assistant").show()
      $('#manager').hide()
      break;
    case "Assistant":
      $("#manager").show()
      $("#assistant").hide()
      break;
    default:
      $("#manager").hide()
      $('#assistant').hide()
  }
});

});//]]> 

选择字段的创建方式如下:

<td><select name="linkmgr[]" id="manager" style="display:none;"><option selected="selected"></option>
<?php $connmgr = new mysqli('localhost', 'admin', 'password', 'db') 
or die ('Cannot connect to db');

    $resultmgr = $connmgr->query("SELECT id, full_name FROM userdata WHERE role='Manager' ORDER BY full_name");
        while ($rowmgr = $resultmgr->fetch_assoc()) {

                  unset($idmgr, $fullname_mgr);
                  $idmgr = $rowmgr['id'];
                  $fullname_mgr = $rowmgr['full_name']; 
                 echo '<option value="'.$idmgr.'">'.$fullname_mgr.'</option>';

}
?></select></td>

此时,表单很好地将助理(或经理)的用户 ID 输入到数据库中。当选择超过 1 名助理(或经理)时,我想用逗号将数据分隔到数据库中。这个我已经想通了。

这两个字段的创建方式类似。 我希望我能够很好地解释我想要完成的任务,并且我充分展示了我蹩脚的编程来引导我走向正确的方向。

谢谢!

最佳答案

基本上,您所看到的是多对多数据库关系。 更合适的方法需要 3 个表(一张用于经理,一张用于助理,一张用于管理他们的关系(一组唯一的经理和助理一起工作的表)),并设置适当的外键。无法向您提供更多详细信息,但我希望这会引导您走上正确的道路:)

关于javascript - 基于 mysql 创建的选择表单添加最多 5 个选择字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45324310/

相关文章:

php - 使用CodeIgniter进行Sql插入、选择

javascript - Google 使用自定义登录表单登录 Cognito

html - DIV外的OL

html - 使用不同的选择器组合多个背景图像

mysql - ERROR 1452 (23000) 不打印源数据文件中的行号

mysql - 在NIFI中使用putdatabaserecord将数据放入MySQL

javascript - jQuery 将下拉列表设置为空值

javascript - 如何在 Vue3 中为 Firebase 调用云函数

javascript - 使用 Python 从站点(部分用 Javascript 编写)下载文件

html - 在 html 中关注输入字段时突出显示提交按钮