//Create li elements for each result that gets created -6ren">
gpt4 book ai didi

php - 将表单中动态生成的名称获取到 $_POST 中

转载 作者:行者123 更新时间:2023-11-29 19:02:10 25 4
gpt4 key购买 nike

我目前正在开发一个个人内容管理系统项目,但遇到了问题。

<ul>
<?php
if(!$result) { //Check for result
die("You have no pages &#9785 Why not create one?");
} else {
while ($pages = mysqli_fetch_assoc($result)) { //Loop through results
?>
<li class="triple"><span><?php echo $pages["title"]?></span><span><?php echo $pages["visible"] ?><span /><form action = "editPage.php" method="post"><input type="submit" value="Edit Page" name="<?php $pages["title"];?>" /></form></li> //Create li elements for each result that gets created
<?php
};
};
?>
</ul>

基本上,我使用查询来查询 MySQL 表的结果并创建页面列表,我遇到的问题是,在最终表单上我想要发生的是我想要存储一个 session 变量说明要编辑哪个页面,但我无法在最后的表单中使用 $_POST 来获取名称,因为显然该名称是从表中自动生成的。每个使用它的人都会有不同的页面名称,所以我不能只得到一个名称,例如$_POST['主页']

如果有人可以就如何解决我的问题提供任何建议,甚至如何提出更好的解决方案来存储哪个页面将在进入另一个页面(editPage.php)时进行编辑,那就太好了。

最佳答案

使用 $_SESSION[] 存储 $page 数组的数据并在 editPage.php 上再次访问它。您需要确保在两个页面上调用 start_session(); 才能使其按预期工作。由于您正在创建多个表单并且不知道在 PHP 运行时将提交哪一个表单,因此您需要将所有页面存储在 $_SESSION 中,然后遍历它们以检查在 editPage 中选择的页面.php:

$_SESSION['pages'] = array();
while ($page = mysqli_fetch_assoc($result)) {
$_SESSION['pages'][] = $page;
echo "<li class=\"triple\">
<span>".$page["title"]."</span>
<span>".$page["visible"]."</span>
<form action=\"editPage.php\" method=\"post\">
<input type=\"hidden\" name=\"pageID\" value=\"".$page['id']."\">
<input type=\"submit\" value=\"Edit Page\">
</form>
</li>";
}

然后在editPage.php

foreach($_SESSION['pages'] as $page){
if($page['id'] == $_POST['pageID']){ $editpage = $page; break; }
}
// do stuff with $editpage data

另一种选择是使用 serialize($page) 并在隐藏的输入元素中发送带有表单数据的数组。

<input type='hidden' name='data' value='<?php echo serialize($page); ?>'>

然后您可以使用 $editpage = unserialize($_POST['data']); 将其转回 editPage.php 中的数组。

关于php - 将表单中动态生成的名称获取到 $_POST 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43787694/

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