gpt4 book ai didi

javascript - 根据查询结果中的用户特定数据,使用按钮打开用户特定 Canvas

转载 作者:行者123 更新时间:2023-12-01 03:16:17 26 4
gpt4 key购买 nike

我无法将用户数据与按钮操作关联起来以打开canvas格式的报表。

下面的代码按缩进方式生成我想要从中获取信息的可能用户表。

<?php

$search = $_POST['search'].'%';

//echo($search);

$stmt = $link->prepare("SELECT lname, fname, username FROM planner WHERE lname LIKE ?");
$stmt->bind_param('s', $search);
$stmt->execute();
$result = $stmt->get_result();


if ($result->num_rows > 0) {
echo "<table><tr><th>Last Name</th><th>First Name</th><th></th></tr>";
while($row = $result->fetch_assoc()) {
echo "<tr><td>".$row['lname']."</td><td>".$row['fname']."</td><td>".$row['username']."</tr>";
}
echo "</table>";

} else {
echo "0 results";

}
?>

接下来我想要做的是在每个结果旁边添加一个按钮,以打开其特定的报告。为了访问这些报告,需要根据他们的用户名启动 session 。到目前为止,我已经根据他们的用户名创建了 session 。这使用 javascript 打开窗口并在单击按钮后显示报告

<?php

$search = $_POST['search'].'%';

//echo($search);

$stmt = $link->prepare("SELECT lname, fname, username FROM planner WHERE lname LIKE ?");
$stmt->bind_param('s', $search);
$stmt->execute();
$result = $stmt->get_result();


if ($result->num_rows > 0) {
echo "<table><tr><th>Last Name</th><th>First Name</th><th></th></tr>";
while($row = $result->fetch_assoc()) {
$username = $row['username'];
$_SESSION['username'] = $username;
echo "<tr><td>".$row['lname']."</td><td>".$row['fname']."</td><td><button onClick=getPlanner();>Get Planner</button></td></tr>";
}
echo "</table>";

} else {
echo "0 results";

}
?>
<script>
function getPlanner() {
var plan = window.open("../php/planner.php","height=700,width=1200,menubar=no,toolbar=no");
}

好消息是 session 已正确建立,并且报告会显示在新窗口中。

坏消息是仅打开表中最后结果的报告。所有其他按钮也仅打开最后一个报告。

我需要帮助的地方(我认为)是如何将从查询中提取的每个用户名与每个按钮对齐,并在单击时启动该用户名独有的 session ,这样我就可以只提取他们的报告,而不是页面的最后结果。

我想我需要隐藏表中的用户名,然后以某种方式在每个按钮上使用该隐藏信息......但这就是我陷入困境的地方。

非常感谢任何有关此问题的帮助

编辑:这是我的最新代码......我仍然无法完全开始工作。

搜索.php:

<?php

$search = $_POST['search'].'%';

//echo($search);

$stmt = $link->prepare("SELECT lname, fname, username FROM planner WHERE lname LIKE ?");
$stmt->bind_param('s', $search);
$stmt->execute();
$result = $stmt->get_result();


if ($result->num_rows > 0) {
echo "<table><tr><th>Last Name</th><th>First Name</th><th></th></tr>";
while($row = $result->fetch_assoc()) {
$username = $row['username'];
echo "<tr><td>".$row['lname']."</td><td>".$row['fname']."</td><td><button onClick=getPlanner('".$username."')>Get Planner</button></td></tr>";
}
echo "</table>";

} else {
echo "0 results";

}
?>
<script>
function getPlanner() {
var plan = window.open("../php/planner.php?pln="+ username,"height=700,width=1200,menubar=no,toolbar=no");
}
</script>

Planner.php

<?php 
session_start();
$username = $_GET["pln"];
$_SESSION['username'] = $username;
echo($_SESSION['username']);
if($_SESSION['username'] != true) {
header("Location: ../access_denied.html");
}
require_once('../php/connect.php');
?>

编辑2:我尝试过将每个 $row['username'] 分配给离散值的方法。我提出了以下方法来为每一行分配唯一的名称,但我仍在寻找一种方法,将每个唯一的名称与表中每行末尾生成的每个按钮相关联。

<?php

$search = $_POST['search'].'%';

//echo($search);

$stmt = $link->prepare("SELECT lname, fname, username FROM planner WHERE lname LIKE ?");
$stmt->bind_param('s', $search);
$stmt->execute();
$result = $stmt->get_result();
$i=0;
$array = array();

if ($result->num_rows > 0) {
echo "<table><tr><th>Last Name</th><th>First Name</th><th></th></tr>";
while($row = $result->fetch_assoc()) {
$i++;
$array["username$i"] = $row['username'];
echo "<tr><td>".$row['lname']."</td><td>".$row['fname']."</td><td><button onClick=getPlanner();>Get Planner</button></td></tr>";
}
$username = $array['username1'];
$_SESSION['username'] = $username;
echo "</table>";

} else {
echo "0 results";
}
?>
<script>
function getPlanner() {
var plan = window.open("../php/planner.php");
}
</script>

最佳答案

如果我理解正确,您可以将用户名传递给 getPlanner 函数,然后将用户名添加为查询字符串参数。获得用户名后,您可以在 planner.php 上设置用户名 session ,而不是显示用户特定的报告。

传递用户名

echo "<tr><td>".$row['lname']."</td><td>".$row['fname']."</td><td><button onClick=getPlanner('".$username."');>Get Planner</button></td></tr>";

接受用户名

function getPlanner(username) {
var plan = window.open("../php/planner.php?u="+ username,"height=700,width=1200,menubar=no,toolbar=no");
}

planner.php

使用 $_GET["u"] 从查询字符串中获取用户名,并使用检索到的值设置 session 。

通过 planner.php 文件中的查询字符串设置 session 的示例。

$username = $_GET["u"];
$_SESSION['username'] = $username;

希望有帮助。

关于javascript - 根据查询结果中的用户特定数据,使用按钮打开用户特定 Canvas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45512142/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com