单个行控件在PHP中使用while循环填充表

时间:2017-08-21 05:05:13

标签: php mysql

我目前非常坚持这一点。我有一个表生成新行,因为它循环通过带有while循环的数据表。在while循环中,我有一些提交按钮,可以在每个新行上重新创建。我的目标是能够单独控制每一行,但我不知道如何实现这一目标。到目前为止,我已经使用隐藏来输入" id"的主键。搜索到这个网站后,我找到了一个有用的答案,向我展示了如何将隐藏的id作为get变量发布并运行我的查询。它工作正常,并更新我需要它的东西,但它需要2页刷新才能做到这一点。此外,我不得不删除提交按钮并替换为样式的锚标记,以将get变量附加到网址onclick。无论如何我可以离开我的按钮,如果没有,只用一页刷新而不是两次完成查询更新?我只更新数据表中的一个字段。我试着调查ajax,但那是我的头脑。我对任何解决方案持开放态度。

<?php
$con = mysql_connect("localhost","maximus1127","");
$db = mysql_select_db("patients",$con);
$get=mysql_query("SELECT patientName, brand, id FROM orders WHERE onOrder=1 and dispensed = 0");
$get2=mysql_query("SELECT patientName, brand FROM orders WHERE onOrder=0 and dispensed = 0");
 if(isset($_GET['deleteId'])) {
     include ("connection.php");
   $sql =  "UPDATE `orders` SET dispensed = 2 WHERE id = '".($_GET['deleteId'])."' LIMIT 1";
    mysqli_query($link, $sql);
 }
?>
<?php include ("header.php"); ?>
   <table class="table">
  <thead class="thead-inverse">
      <h3>On Order</h3>
    <tr>
      <th>Patient Name</th>
      <th>Brand</th>
      <th></th>
       <th></th>
       <th></th>
    </tr>
  </thead>
  <tbody>
        <td scope="row"><?php while ($row = mysql_fetch_array($get)) {
    //output a row here
    echo "<form> <tr><td>".($row['patientName'])."</td> <td>".($row['brand'])."</td><td class='hide'>".($row['id'])."</td><td><div class='btn-group-sm' role='group' aria-label='Basic example'>
  <a href='?deleteId=$row[id]' class='btn btn-danger' onclick= 'pageRefresh();'>Cancel</a>
    <input type='submit' class='btn btn-primary' name = 'view' value='View'>
  <input type='submit' class='btn btn-success' name = 'received' value='Received'>
</div>                                            </td></form>" ;
        }?>
        </td>
    </tr>
        </td>
    </tr>
  </tbody>
</table>
<table class="table">
  <thead class="thead-default">
      <h3>Received</h3>
    <tr>
      <th>Patient Name</th>
      <th>Brand</th>
      <th>Notified</th>
      <th></th>
      <th></th>
      <th></th>
    </tr>
  </thead>
  <tbody>
   <tr>
        <td scope="row"><?php while ($row = mysql_fetch_array($get2)) {
    //output a row here
    echo "<form><tr><td>".($row['patientName'])."</td><td>".($row['brand'])."</td><td></td> 
   <td> <input type='submit' class=' btn btn-success' value='Dispense' /></td></form>";
   }?>
    </tr>
  </tbody>
</table>
<?php include("footer.php"); ?>

1 个答案:

答案 0 :(得分:0)

首先,您应该修复HTML。您向我们展示的内容不是有效的HTML。您不能在<tr>内部<td> ...此外,您不需要为每一行创建一个表单,您可以轻松地为所有按钮创建一个表单。表单会附加用于提交它的按钮的值,您可以使用它来为您带来优势。

<tbody>
    <?php 
        while ($row = mysql_fetch_array($get2)) {
            //output a row here
            echo "<tr><td>".($row['patientName'])."</td><td>".($row['brand'])."</td><td></td>";
            echo "<td><button type='submit' class='btn btn-success' name='dispense_id' value='".$row['id']."' />Dispense</button></td>";
        }
    ?>
</tbody>