如何使用PHP或jQuery保留检索到的数据


How to retain retrieved data using PHP or jQuery

我下面有一个提取PHP脚本(useracc-test.PHP)。通过login.PHP登录后,我将进入用户页面(useracctest.PHP)。在useracc-ttest.PHP中,我可以查看我的个人数据(id、姓名、用户名、电话号码)。但当我按下提交按钮时,检索到的数据(id、姓名、用户名、电话号码)就会消失。因为在同一个页面中,我也有一个插入表单。但首先,每次按下提交按钮时,我如何保留检索到的数据(显示的个人数据)?请帮忙。我尝试过"打印",但只有当我在插入表单中手动输入数据时才适用。但是我无法将其应用于检索到的数据(个人数据)。我下载了jQuery并了解了它,但仍然无法完全理解如何使用它。如果我可以使用PHP来保留数据,有办法吗?几天来,我尝试了互联网上的所有例子,但我找不到或无法理解合适的解决方案。我疯了。请帮忙。

下面的数据-id,名称,用户名,电话号码一直消失,每次我按下提交。如何保留?。

       <?php
    //useracc-test.php
    //start session
    session_start();

    require 'connect-test.php'; 


    if(isset($_POST['username'])){
        $userName = $_POST['username'];
        $query = "SELECT id, name, username, telno FROM users WHERE username = ?";
        $stmt = $conn->prepare($query);
        $stmt->bind_param('s', $userName);
        $stmt->execute();
        $res = $stmt->get_result(); 
        $row = $res->fetch_array();
        $_SESSION['id'] = $row['id'];
        $_SESSION['name'] = $row['name'];
        $_SESSION['username'] = $row['username'];
        $_SESSION['telno'] = $row['telno'];
    }
    ?>

    <html>
    <head>    

</head>
    <body>
    <div id="apDiv3">
    <div id="TabbedPanels1" class="TabbedPanels">
      <ul class="TabbedPanelsTabGroup">
        <li class="TabbedPanelsTab" tabindex="0">Tab 1</li>
        <li class="TabbedPanelsTab" tabindex="0">Tab 2</li>
      </ul>
      <div class="TabbedPanelsContentGroup">
        <div class="TabbedPanelsContent">
          <p>

          </p>
          <?php
        echo $_SESSION['id']."<br/>";
        echo $_SESSION['name']."<br/>";
        echo $_SESSION['username']."<br/>";
        echo $_SESSION['telno']."<br/>";
    ?>

            <?php

     if(isset($_POST['submit']))
       {
        $id = $_POST['id'];
        $name2 = $_POST['name2'];
        $color2 = $_POST['color2'];
        $hobby2 = $_POST['hobby2'];

        $stmt = $conn->prepare("INSERT INTO useradvert (id,name2,color2,hobby2) VALUES (?,?,?,?)");
        $stmt->bind_param("isss",$id,$name2,$color2,$hobby2);
        $stmt->execute();
       // $stmt->close();
       // $conn->close();
       } 

        ?>   



          </p>
        </div>
        <div class="TabbedPanelsContent">
          <form name="form2" method="post" action="useracc-test.php">
            <p>&nbsp;</p>

                 <p>id :        
                   <label for="id"></label>
                   <input name="id" type="text" id="id" value="<?php echo  htmlspecialchars 
                   ($row['id']); ?>" >
                 </p>
            <p>name :
              <input type="text" name="name2" id="name2">
            </p>
            <p>color2 :
              <input type="text" name="color2" id="color2">
            </p>
            <p>hobby2 :
              <input type="text" name="hobby2" id="hobby2">
            </p>
            <p>
              <input type="submit" name="submit" id="submit" value="submit">
            </p>
          </form>
          <p>&nbsp;</p>
          <p>&nbsp;</p>
          <p>&nbsp;</p>
          <p>&nbsp;</p>
        </div>
      </div>
    </div>
      <p>&nbsp;</p>
      <p>&nbsp;</p>
      <p>&nbsp;</p>
      <p>&nbsp;</p>
      <p>    
      <script type="text/javascript">
    var TabbedPanels1 = new Spry.Widget.TabbedPanels("TabbedPanels1");
      </script>
    <?php unset($_SESSION); 
    session_destroy(); ?>
    </body>
                   </html>

在获取数组之后,您应该在$_SESSION变量中分配结果

$_SESSION['id'] = $row['id'];
$_SESSION['name'] = $row['name'];
$_SESSION['username'] = $row['username'];
$_SESSION['telno'] = $row['telno'];

您的$_SESSION变量将在存在SESSION_start()的每个页面中可用。

用户注销时,您可以刷新$_SESSION变量,如下所示:

unset($_SESSION); 
session_destroy(); 

要打印结果,您可以这样做:

<?php
    echo $_SESSION['id']."<br/>";
    echo $_SESSION['name']."<br/>";
    echo $_SESSION['username']."<br/>";
    echo $_SESSION['telno']."<br/>";
<?

编辑:像这样更改代码的顶部。每次单击"SUBMIT"时,都会再次执行查询,但由于这次没有设置$_POST['username]],您将向$username变量中分配一个空字符串

<?php
//useracc-test.php
//start session
session_start();
require 'connect-test.php';
if(isset($_POST['username'])){
    $userName = $_POST['username'];
    $query = "SELECT id, name, username, telno FROM users WHERE username = ?";
    $stmt = $conn->prepare($query);
    $stmt->bind_param('s', $userName);
    $stmt->execute();
    $res = $stmt->get_result(); 
    $row = $res->fetch_array();
    $_SESSION['id'] = $row['id'];
    $_SESSION['name'] = $row['name'];
    $_SESSION['username'] = $row['username'];
    $_SESSION['telno'] = $row['telno'];
}
?>

它不会保留,因为sql所需的用户名可能是从登录表单中发布的。一旦您从useracc-test.php刷新页面,发布的数据就找不到了,因为它是从login.php 中检索的

现在您可以使用SESSIONS

session_start(); $_SESSION['username'] = $_POST['username']; isset($_SESSION['username']) ? $id = $_SESSION['username'] : false;

$_SESSION可以在任何地方使用,只要有session_start()