Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将动态生成的名称从表单中获取到$\u POST中_Php_Html_Mysql_Post_Session Variables - Fatal编程技术网

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 &#9785 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 &#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>

  • 使用
    $\u SESSION[]
    存储$page数组的数据,然后在editPage.php上再次访问它。您需要确保调用
    start_session(),以使其按预期工作。由于您正在创建多个表单,并且不知道在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); ?>'>