如何在模态中获取 id 并使用 php 将其数据打开到另一个页面?

Posted

技术标签:

【中文标题】如何在模态中获取 id 并使用 php 将其数据打开到另一个页面?【英文标题】:How to get the id in modal and open their data to another page with php? 【发布时间】:2022-01-03 23:41:55 【问题描述】:

我想从此模式中获取 id 并将其传递到另一个页面,如 edit_appointment.php?id='id from modal' 问题是我将我的 php 代码执行到不同的文件并仅使用 Ajax 请求来显示我的数据到模态。我不知道如何在这里调用用户ID a href="" class="btn btn-info userdata">编辑约会 这是我的代码

<div class="modal fade" id="AppointmentDetails">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <h4 id="modalTitle" class="modal-title">Appointment Details</h4>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                <span aria-hidden="true">&times;</span>
              </button>
      </div>
      <div id="modalBody" class="modal-body">
        <div class="viewdetails">

        </div>
      </div>
      <div class="modal-footer">
        <a href="" class="btn btn-secondary" data-dismiss="modal">Close</a>
        <a href="" class="btn btn-info userdata">Edit Appointment</a>
      </div>
    </div>
  </div>
</div>

if(isset($_POST['userid']))
    
        $id = $_POST['userid'];
        $sql = "SELECT a.*, CONCAT(p.fname,' ',p.lname) AS pname,p.phone,p.email,d.name AS dname FROM tblappointment as a JOIN tblpatient as p ON p.id = a.patient_id JOIN tbldoctor as d ON d.id = a.doc_id WHERE a.id = '$id' ";
        $query_run = mysqli_query($conn,$sql);
        
        if(mysqli_num_rows($query_run) > 0)
        
            foreach($query_run as $row)
            
                ?>
                <table class="table table-borderless table-responsive table-sm">
                    <thead>
                        <tr>
                            <th style="width: 40px"></th>
                            <th></th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <th class="text-muted">Client:</th>
                            <td><a href=""><?php echo $row['pname'];?></a></br>
                            <?php echo $row['phone'];?></br>
                            <?php echo $row['email'];?></td>
                        </tr>
                        <tr>
                            <th class="text-muted">Doctor:</th>
                            <td><?php echo $row['dname'];?></td>
                        </tr>
                        <tr>
                            <th class="text-muted">Date:</th>
                            <td><?php echo date('F, j Y',strtotime($row['schedule'])); ?></td>
                        </tr>
                        <tr>
                            <th class="text-muted">Time:</th>
                            <td><?php echo date('h:i A',strtotime($row['starttime'])).' - '.date('h:i A',strtotime($row['endtime'])); ?></td>
                        </tr>
                        <tr>
                            <th class="text-muted">Reason:</th>
                            <td><?php echo $row['reason']; ?></td>
                        </tr>
                        <tr>
                            <th class="text-muted">Status:</th>
                            <td>
                                <?php 
                                    if($row['status'] == 'Confirmed')
                                    
                                        echo $row['status'] = '<span class="badge badge-success">Confirmed</span>';
                                    
                                ?>
                            </td>
                        </tr>
                    </tbody>
                </table>
                <?php
            
        
        else
            echo $return = "<h5> No Record Found</h5>";
        
    

我使用 Ajax 请求从 modal 获取数据

eventClick:  function(info) 
         var userid =  info.event.id;        

         $.ajax(
           type: "post",
           url: "calendar_action.php",
           data: userid:userid,
           success: function (response) 
            $('.viewdetails').html(response);
            $("#AppointmentDetails").modal();
           
         );
        ,

【问题讨论】:

【参考方案1】:

在您的 ajax 响应中返回 html 数据时,您可以在其中一个 html 标记中附加您的 id。让我们在第一项即行中附加 id,Client: Dexter Veldez。 假设 Client: 的 html 代码是:

<b>Client:</b>

现在我们在这个标签(b标签)中附加id,并给它一个唯一的id'client-label',以便以后选择这个标签变得更容易:

<b id="client-label" data-id='<?php echo $id; ?>'>Client:</b>

现在在模态部分,在 Edit Appointment 按钮中附加一个 onclick 事件:

<a href="#" class="btn btn-info userdata" onclick="editButtonClicked();">Edit Appointment</a>

现在在页面底部的脚本标签内定义一个名为 editButtonClicked 的函数:

    <script>
    function editButtonClicked()
        var clientTag = document.getElementById("client-label");
        var requiredId = clientTag.getAttribute('data-id');
        //now navigate to edit page with the id
        window.location.href = '/edit_appointment.php?id=' + requiredId;
    
</script>

【讨论】:

哇,非常感谢!!! 没问题,如果还有问题,请告诉我!

以上是关于如何在模态中获取 id 并使用 php 将其数据打开到另一个页面?的主要内容,如果未能解决你的问题,请参考以下文章

传递 PHP 变量 ID 以创建和获取动态模态内容

如何从 mysql 数据库中获取数据并使用 PHP 将其发送给用户? [关闭]

从一个表中获取 id 并使用 php 将其存储到另一个表中

每次打开时如何使 div 模态滚动到顶部?

如何使用 cURL 获取 JSON 数据并解码数据?

如何从 FTP 下载文件并使用 PHP 将其流式传输到客户端