アクションにユーザーデータを関連付ける際に問題が発生しました。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";
}
?>
は、彼らの特定のレポートを開きます。各結果の横button
を追加することです。これらのレポートにアクセスするには、ユーザ名に基づいてsession
を起動する必要があります。ここで私はユーザー名に基づいてsession
を作成するためにこれまでに何を得ているのですか?ボタンが
<?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");
}
をクリックされたら、これはウィンドウを開き、レポートを表示するjavascript
を使用してこれで良いニュースが正しく確立されますとレポートが新しいウィンドウに表示されたセッションです。
悪い知らせは、テーブルの最後の結果からのレポートだけが開かれていることです。他のボタンはすべて最後のレポートだけを開きます。
私は助けが必要です(私は思う)は、クエリから引っ張られた各ユーザー名を各ボタンに合わせる方法と、そのユーザー名に固有のセッションをクリックして起動すると、ページの最終結果。
私はテーブルのユーザー名を非表示にする必要があると思っています。そして、各ボタンでその隠し情報を何とか使用してください...しかし、それは私が立ち往生する場所です。
これですべてのヘルプは大歓迎です
編集:ここで私はまだ非常に動作させることはできません私の最新のコードは...です。
Search.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');
?>
EDIT 2:私は、各$行[ 'ユーザ名']を割り当てるための方法で周りにプレイしました離散値。私は各行に一意の名前を割り当てるために次のものを考え出しましたが、テーブルの各行の最後に生成された各ボタンに各固有の名前を関連付ける方法を探しています。
<?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>
入力Jakoをありがとう...私は追跡しているか分からない。私はあなたがテーブルとJavaScriptのユーザ名をどのように関連づけているかを見ていますが、$ _GET ["u"]がどのようにセッションを確立しているのか分かりません。 – airider74
@ airider74は答えをもっと明確にするように更新しました。考え方は、クエリ文字列を介してユーザー名を渡してから、代わりにplanner.phpファイルの先頭にセッションを設定することです。 –
私はあなたが今話していることを追跡しています。問題は、ボタンが関連付けられている各テーブルエントリに一意のユーザー名をまだ設定していないことです。 $ username = $ row ['username'];を使用します。 $ _SESSION ['username'] = $ username;上記のコードの2番目のラウンドではそれを行いません。もし私がそれを削除して調整を使用すると、ボタンは機能しません... – airider74