【问题标题】:How can I Fetch data after selecting from dropdown list从下拉列表中选择后如何获取数据
【发布时间】:2014-09-29 10:13:38
【问题描述】:

我想从下拉列表中获取数据。就像我从下拉列表中选择员工 id 40 一样,它将从该员工的数据库中获取数据并显示在文本框中。

这是我的下拉代码。请帮助我如何获得选定的值。

<?php
    $con=mysqli_connect("localhost","root","","hct_db");
    // Check connection
    if (mysqli_connect_errno()) {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
?>

 <label>Select Employee ID</label>
     <select class="form-control" name="employee_id">
         <?php 
         $result = mysqli_query($con,"SELECT employee_id FROM employee order by employee_id");

         while($row = mysqli_fetch_array($result)) 
             echo "<option value='" . $row['employee_id'] . "'>" . $row['employee_id'] . "</option>";
         ?>
     </select>

【问题讨论】:

  • 您的代码中没有任何文本框
  • 你了解jquery和ajax吗?
  • 您可以使用onchange of jquery 来检查您何时选择了trigger onchange 方法中的任何值,然后通过Ajax 您可以在textareas 中填写值
  • 您是否使用过任何 javascript 库(例如 jQuery、prototype、MooTools 等)?
  • 我知道它的编码,但我的问题是获取被选中的下拉值。就像在 sql 编码中我应该写什么?从员工中选择 [dropdwon value] ??

标签: php mysql


【解决方案1】:

首先给你一些 id 选择这样的选项:

<select class="form-control" name="employee_id" id='employee'>

像这样添加你的文本框:

<input type='text' name='emp_name' id='emp_name' />

比使用 jquery 和 ajax 像这样:

$('#employee').change(function(){
    var selected_id = $(this).val();
    var data = {id:selected_id};
    $.post('getemp_name.php',data,function(data){
         $('#emp_name').val(data);
    });
});

getemp_name.php

if(isset($_POST['id'])){
    //fire query using this id and get the name of employee and echo it
    echo $emp_name;
}

【讨论】:

    【解决方案2】:
    <?php
    if(isset($_REQUEST['submit']))
    {
      $value=$_POST['employee_id'];
      $query = mysql_query($con,"SELECT employee_name FROM employee where employee_id=$value");
      $result=mysql_fetch_array($query);
      $emp_name=$result['employee_name'];
    }
    ?>
    
    <form action="" method="post" name="form">
     <label>Select Employee ID</label>
       <select class="form-control" name="employee_id">
        <?php $result = mysqli_query($con,"SELECT employee_id FROM employee order by employee_id");
     while($row = mysqli_fetch_array($result)) 
       echo "<option value='" . $row['employee_id'] . "'>" .$row['employee_id'] . "</option>";
     ?>
      </select>
    <input type="submit" name="submit" value="submit">
    </form>
     <input type="text" value="<?=$emp_name?>" name="emp_name"/>
    
    check this code as your need
    

    【讨论】:

    • 真正应该使用GET,而不是POST。此外,顶部的查询实际上并没有选择请求的员工,而是选择了具有最小 employee_id 的员工(您错过了 WHERE 子句)。
    • 哦,您已经使用了已弃用的 mysql_* 函数,而 OP 正确使用了 mysqli。
    【解决方案3】:

    要获得您选择的值,您必须在用户提交表单后到达$_GET 或$_POST 超级表。

    所以,在提交之后,如果你 POST:

    <?php 
    $employee_id = $_POST['employee_id']; ?>
    

    如果你得到:

    <?php 
    $employee_id = $_GET['employee_id']; ?>
    

    【讨论】:

      【解决方案4】:

      在onChange上应用下面的函数

      function myFunction(mySelect) {
              var x = document.getElementById("mySelect").value;
              document.getElementById("demo").innerHTML = "You selected: " + x;
          }
      

      example

      【讨论】:

        【解决方案5】:

        这取决于你想要什么。如果您想在 POST 之后在查询中使用选定的 ID,可以使用以下查询:

            "SELECT   *
             FROM     `employee`
             WHERE    `employee`.`employee_id` = " . (int) $_POST['employee_id'] . "
             LIMIT    1"
        

        假设您在表单中使用 post 方法。

        【讨论】:

          【解决方案6】:

          您可以通过单击Here 轻松了解如何使用此示例从下拉列表中获取数据此存储库包含所有代码

          【讨论】:

            猜你喜欢
            • 2021-03-02
            • 2020-04-26
            • 2021-12-15
            • 2022-11-24
            • 2016-07-12
            • 2022-11-01
            • 1970-01-01
            • 2021-12-07
            • 1970-01-01
            相关资源
            最近更新 更多