【问题标题】:passing selected datarow into modal bootstrap将选定的数据行传递到模态引导程序
【发布时间】:2016-06-24 11:14:32
【问题描述】:

我有一个表格,每行都有一个按钮来显示每条记录的详细信息。我需要的是将选定的数据行传递给模态。

这是我用于显示数据的 PHP 代码

                <?php 
                include 'koneksi.php';

                $sql = "SELECT UPPER(id_site) AS id_site, UCASE(name_site) AS name_site, witel, UPPER(uplink) AS uplink, port_uplink, ip_uplink, UPPER(olt) AS olt, ip_olt, port_olt, ip_ont FROM data_site ORDER BY witel ASC";
                $result = $conn->query($sql);
                if($result->num_rows > 0){
                    //output data 
                    while ($row = $result->fetch_assoc()) {             
                    echo "<tr>
                            <td>$row[id_site]</td>
                            <td>$row[name_site]</td>
                            <td>$row[witel]</td>
                            <td>$row[olt]</td>
                            <td>$row[ip_olt]</td>
                            <td>$row[port_olt]</td>
                            <td>$row[ip_ont]</td>
                            <td><button type='button' data-id='".$row['id_site']."' class='btn btn-xs btn-success' data-toggle='modal' data-target='#detail'>DETAIL</button></td>
                        </tr>";
                    }
                }
             ?> 

这个用于模态显示数据

<?php 
                include 'koneksi.php';
                $sql = "SELECT * FROM data_site WHERE id_site = '".$row['id_site']."'";
                $result = $conn->query($sql);
                if($result->num_rows > 0){
                    while ($row = $result->fetch_assoc()) {
                        echo "<table>
                                <tr>
                                <td>ID Site </td>
                                <td>: $row[id_site]</td>
                                </tr>
                                <tr>
                                <td>Nama Site </td>
                                <td>: $row[name_site]</td>
                                </tr>                                   
                                <tr>
                                <td>Witel</td>
                                <td>: $row[witel]</td>
                                </tr>
                                <tr>
                                <td>OLT Hostname  </td>
                                <td>: $row[olt]</td>
                                </tr>
                                <tr>
                                <td>IP OLT </td>
                                <td>: $row[ip_olt]</td>
                                </tr>
                                <tr>
                                <td>Port OLT</td>
                                <td>: $row[port_olt]</td>
                                </tr>
                                <tr>
                                <td>IP ONT</td>
                                <td>: $row[ip_ont]</td>
                                </tr>
                            </table>
                        ";
                    }
                }
              ?>

这是我的模态

<div id="detail" class="modal fade" role="dialog">
          <div class="modal-dialog">

            <!-- Modal content-->
            <div class="modal-content">
              <div class="modal-header">
                <h4 class="modal-title"></h4>
              </div>
              <div class="modal-body">

              </div>
              <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
              </div>
            </div>

          </div>
        </div>

还有我的 javascript

<script>
        $('#detail').on('show.bs.modal', function (e) {
            var uniqueId = $(e.relatedTarget).data('id');
            $('.modal-title').html('Detail site ' + uniqueId);
            $('.modal-body').html(uniqueId);
        });
</script> 

【问题讨论】:

  • 首先,准备好JS脚本DOM
  • 你想将页面信息传递给模态还是你想从数据库中获取$row['id_site']的信息然后在模态中显示?
  • 我不知道有什么不同,但我认为获取信息。你能给我可以学习 JS 的链接吗?对不起,这个代码对我来说真的很新。
  • 发布了解决方案,您也可以查看此答案以获取更多详细信息和替代方式stackoverflow.com/questions/32433765/…

标签: javascript php modal-dialog bootstrap-modal


【解决方案1】:

您需要的是在 $('#detail').on('show.bs.modal', function (e) { } 中的 Ajax 调用,以针对 $row['id_site'] 获取数据

<script>
    $(document).ready(function() {
        $('#detail').on('show.bs.modal', function (e) {
            var uniqueId = $(e.relatedTarget).data('id');
            //Ajax Method
            $.ajax({
                type : 'post',
                url : 'file.php', //Here you will fetch records 
                data :  'uniqueId='+ uniqueId, //Pass uniqueId
                success : function(response){
                    $('.modal-title').html('Detail site ' + uniqueId);
                    $('.modal-body').html(response);
                }
            });
        });
    });
</script> 

文件.php

<?php 
include 'koneksi.php';
if($_POST['uniqueId']) {
    $uniqueId = $_POST['uniqueId']; //escape the string
    $sql = "SELECT * FROM data_site WHERE id_site = '".$uniqueId."'";
    $result = $conn->query($sql);
    if($result->num_rows > 0){
    while ($row = $result->fetch_assoc()) {
        echo "<table>
                <tr>
                <td>ID Site </td>
                <td>: $row[id_site]</td>
                </tr>
                <tr>
                <td>Nama Site </td>
                <td>: $row[name_site]</td>
                </tr>                                   
                <tr>
                <td>Witel</td>
                <td>: $row[witel]</td>
                </tr>
                <tr>
                <td>OLT Hostname  </td>
                <td>: $row[olt]</td>
                </tr>
                <tr>
                <td>IP OLT </td>
                <td>: $row[ip_olt]</td>
                </tr>
                <tr>
                <td>Port OLT</td>
                <td>: $row[port_olt]</td>
                </tr>
                <tr>
                <td>IP ONT</td>
                <td>: $row[ip_ont]</td>
                </tr>
            </table>
        ";
    }
}
}
?>

【讨论】:

  • 感谢您回答@Shehary,我真的很感激,我想我开始了解它是如何工作的。但是你能再帮我一个吗,在模态中有一个错误说 undefined uniqueId,我该如何解决?
  • 有一个拼写错误id_site = '".uniqueId."'" 在这里回答$sql = "SELECT * FROM data_site WHERE id_site = '".uniqueId."'"; 在代码中修复它$sql = "SELECT * FROM data_site WHERE id_site = '".$uniqueId."'";
  • 步骤很简单,假设你有3个文件index.phpkoneksi.phpfile.php,所有文件位于同一路径,index.php有JS脚本,表格行从哪里您正在触发模态和模态 HTML,koneksi.php 我想有数据库连接,其中包括 index.phpfile.php,最后 file.php 文件有上面发布的代码答案,所以当模态触发并显示,它发出ajax请求并从file.phpuniqueId获取数据并以模态显示
  • 哈哈,我明白了,这项工作很有魅力,非常感谢 Shehary,看来我有很多东西要研究,:D
  • Shehary 很抱歉再次打扰您,当我想将数据提取到具有不同内容的另一个模式时,我再次陷入困境。因此,当我打开模态详细信息时,该模态中有一个编辑按钮,我尝试发送相同的 ajax 请求。我复制了你的代码来获取数据并将这一行 $('#detail').on('show.bs.modal', function (e) { 更改为 $('#edit').on('show.bs. modal', function (e) { and url : 'modalb.php', to url : 'edit.php', 结果当我点击编辑按钮时它什么也不显示,我已经搜索并尝试了很多我认为可以的方式。但什么也没有。我尝试的最后一种方法是这个
猜你喜欢
  • 2021-01-22
  • 1970-01-01
  • 2016-07-05
  • 2021-02-19
  • 2021-03-03
  • 2018-01-25
  • 2014-11-13
  • 2019-12-06
相关资源
最近更新 更多