【问题标题】:how to show data into a input group after click on a tr row which is populated with mysql data using ajax单击使用ajax填充mysql数据的tr行后如何将数据显示到输入组中
【发布时间】:2021-01-27 05:53:53
【问题描述】:

我正在这个系统中制作药房系统我将客户信息存储在mysql数据库中 当用户单击 addNewOrder.php 时我想要什么,它显示一个输入字段,用户在其中写入客户端名称以在数据库中搜索并提取其所有信息,例如客户端名称、手机号码和地址我使用 ajax 进行实时搜索搜索结果以表格形式显示在输入字段下方 我希望当用户单击 tr 时,它会在搜索结果中显示所有以表格形式显示的信息 应显示在输入字段中,例如名称应显示在名称输入字段中并显示数字 在数字输入字段中,地址应显示在地址输入字段中以供进一步处理 下面是我尝试的代码。帮助我如何实现这一目标

这是我的 searchClient.php 代码

         <?php

          include ("config/config.php");

           if(isset($_POST['search'])) {
             $searchClient = $_POST['search'];

            $searchStatement = " SELECT * FROM customers WHERE customer_name LIKE '%$searchClient%'";
            $searchQuery = mysqli_query($conn, $searchStatement);

            echo "
                  <table class='table table-hover'>
                  <tbody>
                 ";
           ?>
               <?php  foreach ($searchQuery as $searchResult){ ?>
              <tr onclick='fill("<?php echo $searchResult['customer_id'];?><br> <?php echo 
              $searchResult['customer_name'];?><br><?php echo $searchResult['customer_number'];?><br> 
              <?php echo $searchResult['customer_address']; ?>")'>
             <th scope="row"><?php echo $searchResult['customer_name']; ?></th>
            <td><?php echo $searchResult['customer_number']; ?></td>
            <td><?php echo $searchResult['customer_address']; ?></td>
            </tr>
            <?php
          }
        }?>

这是我的 html 和 ajax 代码

          <?php
            include_once ("config/config.php");
               ?>
                <!doctype html>
          <html lang="en" xmlns="http://www.w3.org/1999/html">
           <head>
            <!-- Required meta tags -->
             <meta charset="utf-8">
            <meta name="viewport" content="width=device-width, initial-scale=1">

            <!-- Bootstrap CSS -->
             <link href="bootstrap/bootstrap-4.5.3-dist/css/bootstrap.min.css" rel="stylesheet">
             <link href="fontawesome-free-5.15.1-web/css/all.min.css">
            <link href="site_css/main.css" rel="stylesheet">
           <link rel="stylesheet" type="text/css" href="DataTables/datatables.min.css"/>
           <title>Add New Order</title>
           </head>
           <body>
           <?php include("config/navBar.php"); ?>

            <div class="container-fluid">
              <div class="row">
                <div class="col-md-4">
                 <div class="card mt-4 shadow p-3 mb-5 bg-white rounded">
                    <div class="card-body">
                       <div class="card-header bg-dark text-white">Search Client</div>
                       <form method="post">

                        <div class="form-group mt-4">
                        <input type="text" class="form-control js-search" placeholder="Search Client 
                             Here"
                               id="searchClient" name="searchClient">
                        <div class="js-search-result"></div>
                    </div>
                </form>
            </div>
        </div>
    </div>
    <div class="col-md-8">
        <div class="card mt-4 shadow p-3 mb-5 bg-white rounded">
            <div class="card-header bg-dark text-white">
                Client Information
            </div>
            <div class="card-body">
                <p class="js-result-name"></p>
            </div>
        </div>
    </div>
</div>
           <?php include("config/scripts.php") ?>

           <script>

           function fill(value){
           $(".js-result-name").html(value);
            $(".js-search-result").hide();
              $(".js-search").val("");
             }

        $(document).ready(function(){
           $(".js-search").keyup(function (){
           var searchItem = $(this).val();

        $.ajax({
          //url: "searchExample.php",
          url: "searchClient.php",
          type: "post",
          data : {
              search: searchItem,
          },
          //dataType: "json",
          success: function(data){
              $('.js-search-result').html(data).show();

          }
      });
   });
});
      </script>
     </body>
     </html>

【问题讨论】:

  • 您的代码中的输入字段在哪里?
  • 这是一个问题,我如何在输入字段中显示数据我没有添加输入字段但输入字段应该替换为类名,即 js-result-name 目前它显示结果

标签: javascript php ajax


【解决方案1】:

您可以使用click 事件,只要单击您的 tr,使用此方法获取 tdth 的所有数据,然后使用 .val() 将其添加到您的输入框中。另外,我使用了data-id,您可以像这样更改您的&lt;tr&gt;&lt;tr data-id="&lt;?php echo $searchResult['customer_id'];?&gt;"&gt; 并且所有其他数据都已显示在您的 trs 中。

演示代码

//on click of tr
$(document).on("click", "tbody tr", function() {
  //get all values from th & td
  var name = $(this).find("th").text()
  var phone = $(this).find("td:eq(0)").text()
  var address = $(this).find("td:eq(1)").text()
  var customer_id = $(this).data('id')
  //add value to inputs..
  $(".js-result-name").val(name)
  $(".js-result-phone").val(phone)
  $(".js-result-address").val(address)
  $(".js-result-id").val(customer_id)
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!--suppose this is shown after search-->
<table border="1px">
  <tr data-id="1">
    <th scope="row">Abc</th>
    <td>438434</td>
    <td>Soemthing.</td>
  </tr>
  <tr data-id="2">
    <th scope="row">Abc2</th>
    <td>4384342</td>
    <td>Soemthing2.</td>
  </tr>
  <tr data-id="3">
    <th scope="row">Abc3</th>
    <td>4384343</td>
    <td>Soemthing3.</td>
  </tr>
</table>

<div class="col-md-8">
  <div class="card mt-4 shadow p-3 mb-5 bg-white rounded">
    <div class="card-header bg-dark text-white">
      Client Information
    </div>
    <div class="card-body">
      <input type="text" name="id" class="js-result-id">
      <input type="text" name="name" class="js-result-name">
      <input type="text" name="phone" class="js-result-phone">
      <input type="text" name="address" class="js-result-address">
    </div>
  </div>
</div>

【讨论】:

    猜你喜欢
    • 2013-04-25
    • 2012-10-04
    • 1970-01-01
    • 1970-01-01
    • 2021-08-17
    • 2020-07-24
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    相关资源
    最近更新 更多