【问题标题】:edit data in bootstrap modal via php通过 php 在引导模式中编辑数据
【发布时间】:2022-02-01 19:38:11
【问题描述】:

我已经显示了一个基本的引导表。当我单击一个单元格时,我希望使用该行的 deviceId 打开一个模式,以及“功能”单元格的结果。如果“功能”单元格中没有任何内容,则模式仍会加载并允许我为该单元格输入数据。模式打开后,我想编辑然后保存数据,或者取消。我已经查看了该论坛上提出的其他几个问题,但似乎都没有答案。模态加载,但没有要编辑的数据。正确的数据正在通过 php 返回(我可以在 Firefox 的控制台中看到这一点),但没有显示任何内容)。

这是我的桌子:

<div class="container">
        <div class="row-fluid">
        
            <div class="col-xs-6">
                <div class="table-responsive">
            
                <table class="table table-responsive table-striped" 
                    id="scandata"
                    sortName="deviceId"
                    sortOrder="desc"
                    data-toggle="table"
                    data-detail-view="true"
                    data-detail-formatter="detailFormatter"
                    data-filter-control="true"
                    data-pagination="true">
                    <thead class="table-dark">
                    <tr>
                        <th data-name="deviceId" data-field="deviceId" data-visible="false">ID</th>
                        <th data-name="hostname" data-field="hostname_id" data-sortable="true" data-filter-control="input" data-align="center">Hostname</th>
                        <th data-name="ipAddr" data-field="ip_id" data-sortable="true" data-filter-control="input" data-align="center">IP</th>
                        <th data-name="macAddr_id" data-field="macAddr_id" data-sortable="true" data-filter-control="input" data-align="center">Mac Address</th>               
                        <th data-name="openPorts" data-field="openPorts" data-sortable="true" data-filter-control="input" data-align="center">Open Ports</th>               
                        <th data-name="network" data-field="network" data-sortable="true" data-filter-control="input" data-align="center">Network</th>               
                        <th data-name="status" data-field="status" data-sortable="true" data-filter-control="input" data-align="center">Status</th>               
                        <th data-name="functionData" data-field="functionData" data-sortable="true" data-filter-control="input" data-align="center">Function</th> 
              
                    </tr>
                    </thead>
                    <tbody>
                <?php
                    while($row = $result->fetch_assoc()) {  ?>
                            
                        <tr>

                        <td><?php echo $row["deviceId"]; ?></a></td>
                        <td data-type="text" data-abc="true" data-pk="<?php echo $row['deviceId']; ?>"><?php echo $row["hostname"]; ?></td>
                        <td data-type="text" data-abc="true" data-pk="<?php echo $row['deviceId']; ?>"><?php echo long2ip($row["ip"]); ?></td>
                        <td data-type="text" data-pk="<?php echo $row['deviceId']; ?>" data-abc="true"><?php echo $row["macAddr"]; ?></td>
                        <td data-type="text" data-pk="<?php echo $row['deviceId']; ?>" data-abc="true"><?php echo $row["openPorts"]; ?></td>
                        <td data-type="text" data-pk="<?php echo $row['deviceId']; ?>" data-abc="true"><?php echo $row["network"]; ?></td>
                        <td data-type="text" data-pk="<?php echo $row['deviceId']; ?>" data-abc="true"><?php echo $row["status"]; ?></td>
                        <!-- <td><a href="" data-type="text" data-abc="true" data-pk="<?php echo $row['deviceId']; ?>"><?php echo $row["functionData"]; ?></a></td> -->
                        <td data-type="text" data-pk="<?php echo $row['deviceId']; ?>" data-abc="true"><?php echo $row["functionData"]; ?></td>
                    
                        </tr>

                <?php } ?>
                    </tbody>
                </table>
            </div>
        </div>

我的模态:

<div class="modal fade drop-shadow" id="myModal" role="dialog" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h2>Function</h2>
                <button type="button" class="close" data-dismiss="modal">&times;</button> 
                <!-- <h4 class="modal-title">Notification</h4>                                                              -->
            </div> 
            <div class="modal-body">
                <form action="update.php" id="save-form">
                    <div class="col-md-10 m-auto">
                        <div class="form group">
                            <label for="functionData"></label>
                            <input class="form-control" type="text" name="functionData" id="functionData">
                            <!-- <input class="modalTextinput form-control" type="text" name="deviceId" id="deviceId" > -->
                        </div>
                    </div>  
                </div> 
                <div class="modal-footer">
                    <!-- <button type="button" class="close" data-dismiss="modal" aria-hidden="true">Cancel</button>    -->
                    <button type="button" id="save-btn" class="btn btn-primary">Save Changes</button>                               
                                
                </div>
            </form>
        </div>                                                                       
    </div>  
</div> 

这是我的 jquery 来加载模态,确实如此。问题是它不加载单元格数据。

$('#scandata').on('click-cell.bs.table', function (field, value, row, $el) {
  if ( value == "functionData") {
 
    // alert($el.deviceId+"-"+$el.functionData);
    let deviceId = $el.deviceId;
    let functionData = $el.functionData;
    $.ajax({
      url: 'getFunctionData.php',
      type: 'post',
      data: {deviceId: deviceId, functionData:functionData},
      success: function(response){ 
        // Add response in modal body
        $('.functionData').val(response.functionData);
        $('#myModal').modal('show'); 
      }
    });
  }
});

还有我的getFunctionData.php:

if ( $stmt = $connection->prepare($functionQuery)) {
    $stmt->bind_param("i", $deviceId);
    $stmt->execute();
    $stmt->bind_result($functionData);
}

echo json_encode($functionData);

【问题讨论】:

  • 你检查tools -> networkconsole 是否有错误?

标签: php jquery ajax bootstrap-4 bootstrap-table


【解决方案1】:

您的输入字段具有 id="functionData",但您尝试使用不存在的类来处理输入字段。将 $('.functionData') 更改为 $('#functionData')。

$('.functionData').val(...) 用于课程&lt;input class="functionData" ...

$('#functionData').val(...) 是 id 的 &lt;input id="functionData" ...

【讨论】:

  • 出色的抓地力。我更改了它,但我仍然无法让返回值(来自 getFunctionData.php)出现在模态字段中。
  • 好的。请使用success: function(response){ console.log(response.functionData); ... } 和您的浏览器开发工具检查响应,这是否也是预期的字符串。
  • 即使列数据中有条目,console.log 条目也会显示“未定义”。但是,当我查看 XHR 响应时,我会在那里看到相应的数据(例如“DNS 服务器”)。
  • 我不确定javascript。我认为是:console.log(response)$('#functionData').val(response);
  • 伟大的。这给了我模态的回应。我认为 JSON.parse(response) 和我很高兴。我需要传回两个变量,但我认为我应该为此提出一个单独的问题。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2014-08-23
  • 2013-08-19
  • 1970-01-01
  • 1970-01-01
  • 2015-12-22
  • 1970-01-01
  • 1970-01-01
  • 2018-02-02
相关资源
最近更新 更多