在PHP

时间:2018-05-09 15:24:02

标签: php jquery ajax

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

这是我的代码

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

<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

1 个答案:

答案 0 :(得分:-1)

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

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