php - 动态添加选项值

标签 php mysql

我有一个带有 MySQL 选项值的选择。我的问题是,如果表中的值超过 1 个,它总是打印一个选项。如果一名员工拥有超过 1 家公司,如何动态添加更多期权值(value)?

例如:modal

它有 2 个公司,我想打印他拥有的所有公司,而不仅仅是 1 个。我该怎么做?

我在fetch.php中打印当前的MySQL数据。

index.php

    <label>Company:</label>
       <select name="company" id="company" class="form-control">
          <?php 
             $query2 = "SELECT * FROM company GROUP BY company_id";  
             $result2 = mysqli_query($connect, $query2);  
             while($row2= mysqli_fetch_array($result2)){
             ?>
             <option value="<?php echo $row2['company_id'];?>"><?php echo $row2['company_name'];?></option>
             <?php
             }
             ?>
       </select>

    <script>
       $(document).on('click', '.edit_data', function(){  
               var employee_id = $(this).attr("id");  
               $.ajax({  
                    url:"fetch.php",  
                    method:"POST",  
                    data:{'employee_id':employee_id},  
                    dataType:"json",  
                    success:function(data){  
                         $('#company').val(data.company);
                    }  
               });  
          });  

     </script>

fetch.php

if(isset($_POST["employee_id"]))  
 {  
        $query = "SELECT employee.id AS id, employee.name AS name, employee.address AS address, company.company_id AS company
            FROM employee
            LEFT JOIN employee_company ON employee.id = employee_company.employee_id
            LEFT JOIN company ON company.company_id = employee_company.company_id
            WHERE employee.id = '".$_POST["employee_id"]."'";  
      $result = mysqli_query($connect, $query);  
      $row = mysqli_fetch_array($result);  
      echo json_encode($row);  
 }

最佳答案

首先,您不能从下拉菜单中选择多个选项。您需要使用多项选择。

  <select name="company" id="company" class="form-control" multiple>
      <?php 
         $query2 = "SELECT * FROM company GROUP BY company_id";  
         $result2 = mysqli_query($connect, $query2);  
         while($row2= mysqli_fetch_array($result2)){
         ?>
         <option value="<?php echo $row2['company_id'];?>"><?php echo $row2['company_name'];?></option>
         <?php
         }
         ?>
   </select>

然后您需要更改 fetch.php 返回所有公司 ID 的数组:

if(isset($_POST["employee_id"]))  
{  
    $query = "SELECT employee.id AS id, employee.name AS name, employee.address AS address, company.company_id AS company
        FROM szerepek 
        LEFT JOIN employee_company ON employee.id = employee_company.employee_id
        LEFT JOIN company ON company.company_id = employee_company.company_id
        WHERE employee.id = '".$_POST["employee_id"]."'";  
    $result = mysqli_query($connect, $query);
    if (mysqli_num_rows($result) == 0) {
        echo json_encode(null);
    } else {
        $companies = array();
        while ($row = mysqli_fetch_assoc($result)) {
            $companies[] = $row['company'];
        }
        $row['companies'] = $companies;
        echo json_encode($row);
    }
}

并更改 Javascript 以循环遍历它们并选择所有它们。

  $(document).on('click', '.edit_data', function(){  
       var employee_id = $(this).attr("id");  
       $.ajax({  
            url:"fetch.php",  
            method:"POST",  
            data:{'employee_id':employee_id},  
            dataType:"json",  
            success:function(data){  
                if (data) {
                    $("#company").val(data.companies);
                }
            }  
       });  
  });  

关于php - 动态添加选项值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51090057/

相关文章:

PHP - password_verify 问题

c# - 自行创建的依赖关系(外键约束)

php - 我是 PHP CodeIgniter 的新手,MySql 出现一些错误的语法错误 "Delete Join"

php - CSS不想从另一个 Controller 上传

javascript - 交换文本标签以选择值

php - 如何在 Doctrine 2 中获取类而不是数组

php - 简单的 PHP session 错误

Python MySQL 长查询插入或更新

javascript - PHP mysql - 以表格形式显示数据库中的逗号分隔值

mysql - 如何设计这种多对多的数据库?