首页 > 解决方案 > 在 PHP 中获取数据

问题描述

我有<table>那个显示数据。我有一个按钮,如果我点击,数据将显示在#datacontainer. 但问题是只显示了我表中的第一行。

这是我的代码

HTML - 这是表格,假设我的表格(数据库)中有 4 个数据,但第一行仅在您单击按钮时显示数据。

<table>
  <tr>
    <th width="15%;">Image</th>
    <th width="0">ID</th>
    <th width="50%;">Name</th>
    <th>Action</th>
  </tr>
 <?php while ($row = mysqli_fetch_array($accounts)) { ?>
    <tr>
    <td><img src="images/<?php echo $row['image']; ?>"></td>
    <td><?php echo $row['id']; ?><input type="text" id="text_id" value="<?php echo $row['id']; ?>"></td>
    <td><?php echo $row['lastname']; ?>, <?php echo $row['firstname']; ?></td>
    <td>
        <i class="fab fa-reddit-alien" id="showdatacontainer" onclick="return chk()"></i>
        <i class="far fa-edit"  style="margin: 0 7% 0 7%;"></i>
        <i class="fas fa-trash"></i>
    </td>
    <td>
    </td>
    <td>
    </td>
    </tr>
  <?php } ?>
</table>
<div id="datacontainer"></div>

Javascript - 这是我的 jquery 代码

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <script type="text/javascript">
    function chk()
    {
    $("#datacontainer").slideToggle(300);
    var id = document.getElementById('text_id').value;
    var dataString = 'id='+ id;
    $.ajax({
      type: "post",
      url: "showdata.php",
      data:dataString,
      cache:false,
      success: function(data){
        $("#datacontainer").html(data);
      }
    });
    return false;
  }
</script>

PHP - 这是我的 PHP 代码“showdata.php”

    <?php 
    $db = mysqli_connect('localhost', 'root', '', 'psbr');
    if (isset($_POST['id'])) {

    $id = $_POST['id']; 
    $accounts = mysqli_query($db, "SELECT * from accounts where id = '$id'");
    }

 ?>

 <table>
 <?php while ($row = mysqli_fetch_array($accounts)) { ?>
    <tr>
        <td class="w"><h1>Name</h1></td>
    </tr>
    <tr>
        <td><?php echo $row['lastname']; ?></td>
    </tr>
    <?php } ?>
 </table>
 <style type="text/css">
.w
{
    font-size: 12vh;
}
 </style>

请帮我解决这个问题谢谢!:D

标签: phpjqueryajax

解决方案


您正在通过 ID 获取值,但有几个元素具有相同的 ID,因为您处于循环中,因此,您总是会得到第一个答案。

<td><?php echo $row['id']; ?><input type="text" id="text_id" value="<?php echo $row['id']; ?>"></td>

推荐阅读