有没有办法从使用循环创建的 table 设置 $_SESSION 变量
Is there a way to set a $_SESSION variable from a table which is created with a loop
我正在做一个学校项目,我们需要使用数据库创建一个网站,我现在要创建的是我们学校的常见问题解答论坛,我所需要的只是一种解答问题的方法。现在我有一个 table,其中包含使用此代码生成的问题。
`
$query="SELECT vraag, vragen_id, v_naam, tv, a_naam
FROM vragen, personen
WHERE vak_id = 1
AND vragen.id=personen.id
GROUP BY vraag
ORDER BY vragen_id DESC";
$result=$conn->query($query);
echo "<table class = 'w3-table w3-striped w3-bordered w3-hoverable'>";
echo "<tr>";
echo "<th>Vraag nummer  </th>";
echo "<th>Gestelde vraag  </th>";
echo "<th>Gesteld door  </th>";
echo "</tr>";
foreach($result as $row) {
echo "<tr>";
echo "<td>" . $row['vragen_id'] . "</td>";
echo "<td><a href='antwoorden.php'>" . $row['vraag'] . "</a></td>";
echo "<td>" . $row['v_naam'] . " " . $row['tv'] . " " . $row['a_naam'] ."</td>";
echo "</tr>";
}
echo "</table>";
?>`
而且我想知道是否有办法将 $_SESSION['vraag']
设置为已单击的 $row['vraag']
的值。
当用户点击它时,您必须传递 $row['vraag']
的值。
echo "<td><a href='antwoorden.php?vraag=".$row['vraag']."'>" . $row['vraag'] . "</a></td>";
然后在antwoorden.php
的代码中读取并写入session
// do not forget to activate session
session_start();
$_SESSION['vraag'] = $_GET['vraag'];
我了解到您想将答案存储在数据库中
因为您的问题将包含空格和您必须为行创建标识符的其他字符,所以 get 会给您带来麻烦。我认为为此使用 post 请求更容易。
一个选项是为每一行创建一个答案表:
<form action="/antwoorden.php" method="post">
<label for="antwoord">antwoord:</label>
<input type="text" name="antwoord">
<input type="hidden" name="vragen_id" value="{$row['vragen_id']}">
<input type="submit" value="antwoord">
</form>
并捕获表单数据以将其插入数据库并且在插入之前不要忘记确保输入安全。
if(isset($_POST) and !empty($_POST['vragen_id'])){
$antwoord = $_POST['antwoord'];
// add insert sql action here
insert into vragen (..fields..) values (..values..) where vragen_id = ........
// check results of the executed insert query
// head to the same page again and this you'll load the new answer
header('Location: http://www.example.com/antwoorden.php');
当然,如果你只是想存储在session中。做我的客人吧。
我正在做一个学校项目,我们需要使用数据库创建一个网站,我现在要创建的是我们学校的常见问题解答论坛,我所需要的只是一种解答问题的方法。现在我有一个 table,其中包含使用此代码生成的问题。
`
$query="SELECT vraag, vragen_id, v_naam, tv, a_naam
FROM vragen, personen
WHERE vak_id = 1
AND vragen.id=personen.id
GROUP BY vraag
ORDER BY vragen_id DESC";
$result=$conn->query($query);
echo "<table class = 'w3-table w3-striped w3-bordered w3-hoverable'>";
echo "<tr>";
echo "<th>Vraag nummer  </th>";
echo "<th>Gestelde vraag  </th>";
echo "<th>Gesteld door  </th>";
echo "</tr>";
foreach($result as $row) {
echo "<tr>";
echo "<td>" . $row['vragen_id'] . "</td>";
echo "<td><a href='antwoorden.php'>" . $row['vraag'] . "</a></td>";
echo "<td>" . $row['v_naam'] . " " . $row['tv'] . " " . $row['a_naam'] ."</td>";
echo "</tr>";
}
echo "</table>";
?>`
而且我想知道是否有办法将 $_SESSION['vraag']
设置为已单击的 $row['vraag']
的值。
当用户点击它时,您必须传递 $row['vraag']
的值。
echo "<td><a href='antwoorden.php?vraag=".$row['vraag']."'>" . $row['vraag'] . "</a></td>";
然后在antwoorden.php
的代码中读取并写入session
// do not forget to activate session
session_start();
$_SESSION['vraag'] = $_GET['vraag'];
我了解到您想将答案存储在数据库中
因为您的问题将包含空格和您必须为行创建标识符的其他字符,所以 get 会给您带来麻烦。我认为为此使用 post 请求更容易。
一个选项是为每一行创建一个答案表:
<form action="/antwoorden.php" method="post">
<label for="antwoord">antwoord:</label>
<input type="text" name="antwoord">
<input type="hidden" name="vragen_id" value="{$row['vragen_id']}">
<input type="submit" value="antwoord">
</form>
并捕获表单数据以将其插入数据库并且在插入之前不要忘记确保输入安全。
if(isset($_POST) and !empty($_POST['vragen_id'])){
$antwoord = $_POST['antwoord'];
// add insert sql action here
insert into vragen (..fields..) values (..values..) where vragen_id = ........
// check results of the executed insert query
// head to the same page again and this you'll load the new answer
header('Location: http://www.example.com/antwoorden.php');
当然,如果你只是想存储在session中。做我的客人吧。