【问题标题】:How to display the retrieved data in the same page using PHP如何使用 PHP 在同一页面中显示检索到的数据
【发布时间】:2022-01-26 23:00:35
【问题描述】:

我创建了一个包含 3 个字段的表并将值存储到其中。我创建了一个可以执行不同操作的表单。其中之一是检索。当我单击检索按钮时,表中的请求数据会显示在不同的页面上。我想在同一页面中显示它。我想单独使用 PHP 来做到这一点。这可能吗?

<!DOCTYPE html>
<html>
<head>
<title>Untitled Document</title>
</head>
<body>

<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'DB';
$conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if(mysqli_connect_error()) 
{
die("couldn't connect" . $conn->connect_error());
}
$id = $_POST['Id'];
$name = $_POST['Name'];
$blood = $_POST['BloodGroup'];


if(isset($_POST['insert'])){
        $insert = "Insert into ins(Id, name, BloodGroup) values ('$id','$name', '$blood')" ;
        if($conn->query($insert) === TRUE) {
        echo ("Input data entered successfully");
        } else {
        echo ("Input data failed to be entered" . $conn->error());
        }
        $conn->close();
} elseif(isset($_POST['update'])) {

        $update = "update ins set Name='".$name."', BloodGroup='".$blood."' where Id='".$id."'";
        mysql_query($update);
        if($conn->query($update) === TRUE) {
        echo ("Data updated successfully");
        } else {
        echo ("Data cant be updated" . $conn->error());
        }
        $conn->close();
} elseif(isset($_POST['delete'])) {
        $id = $_POST['Id'];
        $delete = "delete from ins where Id='".$id."'";
        if($conn->query($delete) === TRUE) {
        echo ("Data deleted successfully");
        } else {
        echo ("Data cant be updated" . $conn->error());
        }
        $conn->close();
}
else {
$id = $_POST['Id'];
$retrieve = "SELECT * FROM ins WHERE Id = ".$id;
if ($result=mysqli_query($conn,$retrieve))
 {
  while ($row=mysqli_fetch_row($result))
{
echo '<table>
<tr>
<td>Id</td>
<td>Name</td>
<td>Blood Group</td>
</tr>
<tr>
<td>'.$row[0].'</td>
<td>'.$row[1].'</td>
<td>'.$row[2].'</td>
</tr>
</table>';
//$row[0],$row[1],$row[2]';
}
   mysqli_free_result($result);
}}
$conn->close();
?>

<h2>SELECT THE OPERATION YOU WANT TO PERFORM<h2>
<form method="post">
Id: <input type="text" name="Id" />
Name: <Input type="text" name="Name" />
BloodGroup: <input type="text" name="BloodGroup" /><br /><br />
<input type="submit" name="insert" value="Insert" />
<input type="submit" name="update" value="Update" />
<input type="submit" name="delete" value="Delete" />
<input type="submit" name="retrieve" value="retrieve" />
</form>
</body>
</html>

【问题讨论】:

  • 你不能这样做。 PHP 是一种服务器端语言,您需要重新加载页面才能执行脚本。你可以使用AJAX 做你想做的事,但这需要javascript。
  • 将表单动作属性设置为与表单相同的页面,并添加用于检索表单页面上数据的php代码。
  • 是的。我对 PHP 很陌生。所以我不知道如何使用 AJAX。
  • @TraianTatic 我照你说的做了。仍然只显示一个单独的页面。
  • @TraianTatic。我已经把完整的代码放在那里了。即使按照你说的做,输出也没有变化

标签: php html mysql


【解决方案1】:
elseif(isset($_POST['retrieve']))
{
$id = $_POST['Id'];
$retrieve = "SELECT * FROM `ins` WHERE `Id` ='".$id."'";
if ($result=mysqli_query($conn,$retrieve))
 {
  while ($row=mysqli_fetch_row($result))
{
echo '<table>
<tr>
<td>Id</td>
<td>Name</td>
<td>Blood Group</td>
</tr>
<tr>
<td>'.$row[0].'</td>
<td>'.$row[1].'</td>
<td>'.$row[2].'</td>
</tr>
</table>';
}
   mysqli_free_result($result);
}}

代替你的else条件代码放置这个

【讨论】:

    【解决方案2】:

    您还没有向我们展示第一个文件中带有检索按钮的代码。如果我理解正确,这就是你想要的。你需要在第一个文件上有一个表单,不要指定动作属性

    <form method="post">
    

    你需要像这样在上面有一个按钮

    <button type='submit'>
    

    按下按钮时,将执行相同的文件。在文件的开头,您检查是否有帖子,如果有,处理它并输出您想要的内容(并且不要输出“检索”按钮)。您不需要第二个表单来显示结果。

    在输出 html 标头之前您也需要这个,否则您将看不到编辑框的值。

    if(!isset($_SESSION))
    session_start();
    

    我看不到其他任何错误(我自己没有运行它)。您确实意识到该页面将被刷新!如果你不想要这个,那么你必须使用 ajax。

    【讨论】:

    • 等等,我会把整个代码放在那里。我希望数据显示在同一页面中。
    猜你喜欢
    • 1970-01-01
    • 2013-04-23
    • 2021-07-22
    • 2014-02-23
    • 1970-01-01
    • 2022-01-25
    • 2017-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多