0

让我解释一下我需要做什么,下面的 img 是我的页面。它连接到centos服务器上的mysql,php也在centos上。

  • 有哪个是恢复和删除。
  • 它所要做的就是更新数据库上的值。
  • 当其更新时,它要么更改为恢复要么删除。
  • 我做了所有我的问题是当我点击它时我看不到它改变,我必须重新加载页面。
  • 例如,如果我单击删除(使用 get)它会更新数据库并且它应该将自身更改为恢复,我有一个 php 代码来使其更改,但我必须手动刷新页面。
  • 我已经尝试过 php Header,它可以在 Xampp 上运行,但不是出于某种原因。

.

$page = $_SERVER['PHP_SELF'];
$sec = "0.001";
header("Refresh: $sec; url=$page")

header("Location: view.php");

在此处输入图像描述

<html>
  <head>
    <meta charset="UTF-8">
  <?php
include "library2.php";
include "delete.php";
printHeader(); // prints the logo
?>
  <title>
    View
  </title>
  <link rel="stylesheet" type="text/css" media="screen" href="styles.css">
  <nav>
    <ul>
      <li>
        <a href="add.php">
          Add
        </a>
      </li>

      <li>
        <a href="view.php">
          View
        </a>
      </li>
    </ul>
  </nav>
  </head>

  <body>
<?php
$link = connectMysql();
$sql_query = "SELECT * from inventory;";
$result = runQuery($link, $sql_query);      

if($_GET){
deleteRestoreItem($_GET['DeleteRestore']);

$page = $_SERVER['PHP_SELF'];
$sec = "0.001";
header("Refresh: $sec; url=$page");
}
?>
    <div id ="view">
    </br>
  </br>
</br>
<table >

  <th>
    ID
  </th>
  <th>
    Item Name
  </th>
  <th>
    Description
  </th>
  <th>
    Supplier Code
  </th>
  <th>
    Cost
  </th>
  <th>
    Selling Price
  </th>
  <th>
    Number On Hand
  </th>
  <th>
    Reorder Point
  </th>
  <th>
    Back Order
  </th>
  <th>
    Delete/Restore
  </th>
  <?php

while($row = mysqli_fetch_assoc($result))
{
?>
              <tr>
                <td>
                  <?php print $row['id']; ?>
                </td>
                <td>
                  <?php print $row['itemName']; ?>
                </td>
                <td>
                  <?php print $row['description']; ?>
                </td>
                <td>
                  <?php print $row['supplierCode']; ?>
                </td>
                <td>
                  <?php print $row['cost']; ?>
                </td>
                <td>
                  <?php print $row['price']; ?>
                </td>
                <td>
                  <?php print $row['onHand']; ?>
                </td>
                <td>
                  <?php print $row['reorderPoint']; ?>
                </td>
                <td>
                  <?php print $row['backOrder']; ?>
                </td>
                <td>
                  <?php 
if($row['deleted']=="n")
{ 
?>
<a href="view.php?DeleteRestore=<?php echo $row['id'];?>">Delete</a>

   <?php    
    }


    if($row['deleted']=="y")
      {

   ?>
      <a href="view.php?DeleteRestore=<?php echo $row['id'];?>"></a><?php
      }
?>
 </td>
 </tr>

<?php
}
?>
</table>
</br>

</div>
 </body>
  <footer>
     <?php
         printFooter()
     ?>
  </footer>
</html>
4

2 回答 2

2

你应该跑

$sql_query = "SELECT * from inventory;";
$result = runQuery($link, $sql_query);

deleteRestoreItem($_GET['DeleteRestore']);

目前,您首先要求数据库获取内容,将其存储到 $result 中,然后更改数据库,然后在更改之前显示数据库状态的第一个结果。(所以没有显示任何变化)。

更改此顺序,它应该可以工作。首先更改数据库,然后询问数据库内容并显示它。不再需要刷新


所以作为结论:

<?php
$link = connectMysql();
$sql_query = "SELECT * from inventory;";
$result = runQuery($link, $sql_query);      

if($_GET){
 deleteRestoreItem($_GET['DeleteRestore']);

 $page = $_SERVER['PHP_SELF'];
 $sec = "0.001";
 header("Refresh: $sec; url=$page");
}
?>

应该更像

<?php
$link = connectMysql();

if($_GET){
 deleteRestoreItem($_GET['DeleteRestore']);
}

$sql_query = "SELECT * from inventory;";
$result = runQuery($link, $sql_query);      

?>
于 2013-10-15T21:37:09.483 回答
0

为什么你不为此使用ajax?

或者只是首先更新数据库中的状态,然后选择所有记录。然后你就不需要重新加载你的页面了。

于 2013-10-15T21:34:35.470 回答