php - 如何使用php重新加载页面,我不使用任何其他局域网。标题不适合我

标签 php mysql

让我解释一下我需要做什么,下面的图片是我的页面。它连接到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");

enter image description here

<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>

最佳答案

你应该跑

$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);      

?>

关于php - 如何使用php重新加载页面,我不使用任何其他局域网。标题不适合我,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19391459/

相关文章:

javascript - 使用javascript在文本框中显示数据

PHP 表单欺骗和验证

php - 将 proc_open() 获取的管道重定向到文件,以处理剩余的过程持续时间

php - 将产品详细信息插入 'product' 表,并将产品图像插入 'image' 表

php - 将 Laravel 中的集合转换为数组,Laravel 5

MySQL评论表结构问题

java - 使用“加载数据到”将 CSV 文件加载到 mysql 表。如何将以下查询转换为 JOOQ?

php - 将多个表的结果插入一个 json_encode()

php - 如何优化大型内容网站的网页和数据库

php - 缺少呈现此页面的数据