Javascript 当点击回显的html代码时,PHP从数据库中获取信息

Javascript 当点击回显的html代码时,PHP从数据库中获取信息,javascript,php,mysql,Javascript,Php,Mysql,在我的代码中,我使用while循环从数据库中检索数据,这样我就可以在数据库中拥有所有$FormData['fullname'] 我想做的是,让每个名字都显示在页面上,并且还可以单击,这样当有人单击一个名字时,它就会获得他们的用户id,并调出关于他们的信息 我遇到的问题是,我无法找到一种方法来创建它,这样当用户单击一个名称时,我就可以在哪里获得用户id。我尝试在按钮属性中添加一个“name”,并检查了isset(),但没有成功 如果有人能为我找到一种基本的方法,显示我数据库中所有的全名,当有人点击

在我的代码中,我使用while循环从数据库中检索数据,这样我就可以在数据库中拥有所有
$FormData['fullname']

我想做的是,让每个名字都显示在页面上,并且还可以单击,这样当有人单击一个名字时,它就会获得他们的
用户id
,并调出关于他们的信息

我遇到的问题是,我无法找到一种方法来创建它,这样当用户单击一个名称时,我就可以在哪里获得
用户id
。我尝试在按钮属性中添加一个
“name”
,并检查了
isset()
,但没有成功

如果有人能为我找到一种基本的方法,显示我数据库中所有的
全名
,当有人点击一个名字时,它会调出存储在数据库中的关于他们的信息。这是我的密码

$stmtGet=$handler->prepare(“从formdata中选择*);
$stmtGet->execute();
而($formData=$stmtGet->fetch()){
回显“$formData[全名]”;
如果($\u服务器['REQUEST\u METHOD']==“POST”){
如果(isset($_POST['name'])){
回音“ok”;
}否则{
呼应“坏”;
}
}
}

我应该强调,这不是生产代码,在将查询发布到数据库之前,您应该完全验证输入的数据。你可以这样做

<?php
    // Connect
    $connection = mysqli_connect('localhost', 'username', 'password', 'database','port');
    // Grab all users
    $sql = 'SELECT * FROM users';
    $users = mysqli_query($connection, $sql);

    if (($_SERVER['REQUEST_METHOD'] == 'POST') && !empty($_POST['user_id'])) {
        $query = "SELECT * FROM users WHERE user_id = {$_POST['user_id']};";
        $user = mysqli_fetch_assoc(mysqli_query($connection, $query));
    }
?>

// This only runs if our $user variable is set.
<?php if (isset($user)) : ?>
    <?php foreach ($user as $key => $value) : ?>
        <span><?= print_r($value) ?></span>
    <?php endforeach; ?>
<?php endif; ?>

// Display all users in a dropdown and when the button is clicked
// submit it via post to this page.
<form action="<?= $_SERVER['PHP_SELF'] ?>" method="post">
    <select name="user_id">
        <?php foreach ($users as $user) : ?>
            <option value="<?= $user['user_id'] ?>"><?= $user['name'] ?></option>
        <?php endforeach; ?>
    </select>
    <button type="submit">Submit</button>
</form>

提交

每次都会刷新您的页面。如果您想拥有一个交互式页面,您需要使用JavaScript/AJAX更新页面元素,而无需重新加载页面。这个示例演示了如何使用PHP和HTML实现这一点。

我应该强调,这不是生产代码,在将查询发布到数据库之前,您应该完全验证输入的数据。你可以这样做

<?php
    // Connect
    $connection = mysqli_connect('localhost', 'username', 'password', 'database','port');
    // Grab all users
    $sql = 'SELECT * FROM users';
    $users = mysqli_query($connection, $sql);

    if (($_SERVER['REQUEST_METHOD'] == 'POST') && !empty($_POST['user_id'])) {
        $query = "SELECT * FROM users WHERE user_id = {$_POST['user_id']};";
        $user = mysqli_fetch_assoc(mysqli_query($connection, $query));
    }
?>

// This only runs if our $user variable is set.
<?php if (isset($user)) : ?>
    <?php foreach ($user as $key => $value) : ?>
        <span><?= print_r($value) ?></span>
    <?php endforeach; ?>
<?php endif; ?>

// Display all users in a dropdown and when the button is clicked
// submit it via post to this page.
<form action="<?= $_SERVER['PHP_SELF'] ?>" method="post">
    <select name="user_id">
        <?php foreach ($users as $user) : ?>
            <option value="<?= $user['user_id'] ?>"><?= $user['name'] ?></option>
        <?php endforeach; ?>
    </select>
    <button type="submit">Submit</button>
</form>

提交

每次都会刷新您的页面。如果您想拥有一个交互式页面,您需要使用JavaScript/AJAX更新页面元素,而无需重新加载页面。这个例子只是演示了如何使用PHP和HTML实现这一点。

据我所知,您正在尝试在
while循环中点击一个按钮,我不会说这是一个糟糕的方法,但我建议您不要这样做。从您的代码中,我可以看出您缺乏理解
post
get
请求学习。除此之外,您还需要了解web url的转换。它实际上是如何工作的。无论如何,我已经给出了一个示例代码。我希望它能帮助你理解这个概念

  $stmtGet = $handler->prepare("SELECT * FROM formdata");
   $stmtGet->execute();
while($formData = $stmtGet->fetch(PDO::FETCH_ASSOC)){
$id  = $formData['formdataid'];
 echo "<a href='somepagename.php?infoid={$id}'>". $formData['fullname']."</a></br>";
}
$stmtGet=$handler->prepare(“从formdata中选择*);
$stmtGet->execute();
而($formData=$stmtGet->fetch(PDO::fetch_ASSOC)){
$id=$formData['formdataid'];
回声“
”; }
现在,在somepagename.php文件或同一页面中,您可以实际显示示例的详细信息

if(isset($_GET['infoid'])){
$stmt = $handler->prepare("select * from formdata where formdataid='"$_GET['infoid']"'");
$qry = $stmt->execute();
$row = $qry->fetch(PDO::FETCH_ASSOC);
echo "<p>id =".$row['formdataid']."</p></br>";
echo "<p>id =".$row['name']."</p></br>";
echo "<p>id =".$row['email']."</p></br>";
echo "<p>id =".$row['address']."</p></br>";
if(isset($\u GET['infoid'])){
$stmt=$handler->prepare(“从formdata中选择*,其中formdataid='”$\u GET['infoid']'”);
$qry=$stmt->execute();
$row=$qry->fetch(PDO::fetch_ASSOC);
echo“id=”.$row['formdataid']”“


”; echo“id=”.$row['name']”“


”; echo“id=”.$row['email']”“


”; echo“id=”.$row['address']”“


”;
代码未执行,它可能有分号或逗号错误警告。您必须自己修复这些错误。上面的示例仅向您展示了它的工作方式。
如果您仍然有问题,请提问,或者看到我所能看到的您正在尝试在
while循环中点击按钮,我不会说这是一种不好的方法,但我建议您不要这样做。从您的代码中,我可以看出您缺乏对
post
get
请求的理解。除此之外你需要知道web url的转换。它实际上是如何工作的。无论如何,我已经给出了一个没有url的示例代码。我希望它能帮助你理解这个概念

  $stmtGet = $handler->prepare("SELECT * FROM formdata");
   $stmtGet->execute();
while($formData = $stmtGet->fetch(PDO::FETCH_ASSOC)){
$id  = $formData['formdataid'];
 echo "<a href='somepagename.php?infoid={$id}'>". $formData['fullname']."</a></br>";
}
$stmtGet=$handler->prepare(“从formdata中选择*);
$stmtGet->execute();
而($formData=$stmtGet->fetch(PDO::fetch_ASSOC)){
$id=$formData['formdataid'];
回声“
”; }
现在,在somepagename.php文件或同一页面中,您可以实际显示示例的详细信息

if(isset($_GET['infoid'])){
$stmt = $handler->prepare("select * from formdata where formdataid='"$_GET['infoid']"'");
$qry = $stmt->execute();
$row = $qry->fetch(PDO::FETCH_ASSOC);
echo "<p>id =".$row['formdataid']."</p></br>";
echo "<p>id =".$row['name']."</p></br>";
echo "<p>id =".$row['email']."</p></br>";
echo "<p>id =".$row['address']."</p></br>";
if(isset($\u GET['infoid'])){
$stmt=$handler->prepare(“从formdata中选择*,其中formdataid='”$\u GET['infoid']'”);
$qry=$stmt->execute();
$row=$qry->fetch(PDO::fetch_ASSOC);
echo“id=”.$row['formdataid']”“


”; echo“id=”.$row['name']”“


”; echo“id=”.$row['email']”“


”; echo“id=”.$row['address']”“


”;
代码未执行,它可能有分号或逗号错误警告。您必须自己修复这些错误。上面的示例仅向您展示了它的工作方式。
如果您仍然有问题,请询问或查看您需要了解的服务器端语言(php)和客户端语言(javascript)

php在加载页面之前运行。当它自己单击某个内容时无法运行(使用ajax,它可以)。 大多数没有页面移动的交互都使用javascript运行

在您的案例中,有两种方法

  • 将所有信息存储到隐藏的输入或按钮的属性中。并通过javascript通过用户id获取这些信息
  • 使用ajax调用另一个php,它可以根据用户id选择您需要的信息

  • 两者都使用javascript或jquery。因此您必须了解它们。

    您需要了解服务器端语言(php)和客户端语言(javascript)

    php在加载页面之前运行。当它自己单击某个内容时无法运行(使用ajax,它可以)。 大多数没有页面移动的交互都使用javascript运行

    在您的案例中,有两种方法

  • 将所有信息存储到隐藏的输入或按钮的属性中,并通过javascri通过用户id获取它们