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