Php 将动态生成的名称从表单中获取到$\u POST中
我目前正在从事一个个人内容管理系统项目,但遇到了一个问题Php 将动态生成的名称从表单中获取到$\u POST中,php,html,mysql,post,session-variables,Php,Html,Mysql,Post,Session Variables,我目前正在从事一个个人内容管理系统项目,但遇到了一个问题 <ul> <?php if(!$result) { //Check for result die("You have no pages ☹ Why not create one?"); } else { while ($pages = mysqli_fetch_assoc($result)) { //Loop through results ?&g
<ul>
<?php
if(!$result) { //Check for result
die("You have no pages ☹ 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>
- 使用
$\u SESSION[]
存储$page数组的数据,然后在editPage.php上再次访问它。您需要确保调用start_session()但在这两个页面上都有code>,以使其按预期工作。由于您正在创建多个表单,并且不知道在PHP运行时将提交哪一个表单,因此您需要将所有页面存储在$\u会话中,然后对其进行迭代,以检查在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>";
}
另一个选项是使用序列化($page)
并在隐藏的输入元素中发送包含表单数据的数组
<input type='hidden' name='data' value='<?php echo serialize($page); ?>'>
如果它的数据来自MySQL表,那么我假设“pages”表有一个唯一的键,为什么不使用该键呢?从这个意义上讲,“name”是不相关的,不是吗?唯一的键是“id”,而且,即使我做了一个MySQL查询,我也不太明白这将如何让我选择要编辑的页面内容,因为我有大约10个活动页面和5个保留页面,所以id有点混乱。除此之外,我不认为使用静态id可以让我拍摄一个动态生成的li项目。为了快速回复,我将进行测试,看看效果如何,然后再给你回复。关于PHP还有很多需要学习的地方XD@ParadAUX,我对一个我最初没有考虑过的问题进行了一些更新。如果您选择使用$\u会话变量,您应该查看更新
<input type='hidden' name='data' value='<?php echo serialize($page); ?>'>