【问题标题】:Retrieve data from mysql table ajax从mysql表ajax中检索数据
【发布时间】:2022-08-14 15:09:05
【问题描述】:

我有一个日期类型的输入字段,并且有一个包含日期数据的数据库。我需要在不刷新页面的情况下在日期字段中选择日期时,将显示与该日期关联的所有数据。我有这段代码,当从列表中选择一个选项时,它将显示我需要的内容。如何修复此脚本,以便在日期类型字段中选择日期时,它将日期发送到服务器

 <input type=\"date\" class=\"form-control\" name=\"date_sched\" value=\"\" required>
<span id=\"skidka\"></span> 

<script type=\"text/javascript\">
$(document).ready(function() {
    $(\'#category\').change(function () {
        var category = $(this).find(\':selected\').val();
        $.ajax({
            url:_base_url_+\"admin/appointments/get_cat.php\",
            type: \'POST\',
            data: {category: category},
            success: (function (data) {
                 $(\"#date_field\").html(data);
            })
        });         
    });
});

获取-cat.php

    $query = \"SELECT * FROM `appointments` WHERE `id` = \'\".($_POST[\'category\']).\"\'\";
$result = $mysqli->query($query);

$data = \'\';
foreach ($result as $value){
    $data .= $value[\'date_sched\'];
} 
echo $data;

?>

    标签: php mysql ajax


    【解决方案1】:

    要使用 Ajax + jQuery 检索数据,您应该编写以下代码:

    创建一个 id="showData" 的 HTML 按钮。单击此按钮将执行 Ajax 脚本。

    后端脚本.php

    <?php
    
    include("database.php");
    $db=$conn;
    // fetch query
    function fetch_data(){
     global $db;
      $query="SELECT * from usertable ORDER BY id DESC";
      $exec=mysqli_query($db, $query);
      if(mysqli_num_rows($exec)>0){
        $row= mysqli_fetch_all($exec, MYSQLI_ASSOC);
        return $row;  
            
      }else{
        return $row=[];
      }
    }
    $fetchData= fetch_data();
    show_data($fetchData);
    
    function show_data($fetchData){
     echo '<table border="1">
            <tr>
                <th>S.N</th>
                <th>Full Name</th>
                <th>Email Address</th>
                <th>City</th>
                <th>Country</th>
                <th>Edit</th>
                <th>Delete</th>
            </tr>';
    
     if(count($fetchData)>0){
          $sn=1;
          foreach($fetchData as $data){ 
    
      echo "<tr>
              <td>".$sn."</td>
              <td>".$data['fullName']."</td>
              <td>".$data['emailAddress']."</td>
              <td>".$data['city']."</td>
              <td>".$data['country']."</td>
              <td><a href='crud-form.php?edit=".$data['id']."'>Edit</a></td>
              <td><a href='crud-form.php?delete=".$data['id']."'>Delete</a></td>
       </tr>";
           
      $sn++; 
         }
    }else{
         
      echo "<tr>
            <td colspan='7'>No Data Found</td>
           </tr>"; 
    }
      echo "</table>";
    }
    
    ?>
    

    ajax-script.js

    $(document).on('click','#showData',function(e){
          $.ajax({    
            type: "GET",
            url: "backend-script.php",             
            dataType: "html",                  
            success: function(data){                    
                $("#table-container").html(data); 
               
            }
        });
    });
    

    【讨论】:

    • 您的示例输出所有数据,我想从日期类型的字段中选择一个日期,将此日期发送到服务器,并从数据库处理后,显示相应的值
    • 您可以在 onclick 上获取日期并传递给服务器并添加 where 条件,以便仅显示特定的日期数据
    【解决方案2】:

    您需要这样做,以便当您的日期更改时,您可以根据该日期获取数据:

     <input type="date" class="form-control" name="date_sched" id='date_sched' required>
    
     <script type='text/javascript'>
       $(document).ready(function(){
         $(document).on('change', '#date_sched', function(){
           let date = $(this).val();
    
           $.ajax({
             url:_base_url_+"admin/appointments/get_cat.php",
             type: 'POST',
             data: {date: date},
             success: function (data) {
                 $("#data_to_be_shown").html(data);
             );
           });
         });
       });
     </script>
    

    然后,您的查询应如下所示:

    $date = $_POST['date'];
    
    $sql = "SELECT * FROM `table_name` WHERE `date` = $date";
    $stmt = $connection->query($sql);
    

    另外,我建议您查看准备好的陈述。

    【讨论】:

      【解决方案3】:

      我不确定你想要什么,你的意思是带有日期过滤器的服务器端表吗? 如果是,我认为这将有所帮助: https://datatables.net/examples/data_sources/server_side 您可以阅读文档以了解高级服装日期范围过滤器或您自己的过滤器

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-18
        • 2012-07-27
        • 2020-03-29
        • 2011-12-23
        • 2013-02-13
        • 1970-01-01
        相关资源
        最近更新 更多