如何将html数据发送到另一个php页面

时间:2018-07-13 11:22:01

标签: php html forms

我正在从数据库中获取数据并对其进行回显,如下所示。

  <?php
  include 'retrieveAllPosts.php';

  foreach ($studentsResults as $posts) 
  {

    $title = htmlentities($posts['Title']);
    $Location = htmlentities($posts['Location']);
    $Description= htmlentities($posts['Description']);
    $companyname = htmlentities($posts['companyname']);

     echo "

    <div class='col-md-6 z-depth-1-half' style='margin-left:250px; margin-top:10px;margin-bottom: 10px' id='hey'>

          <h3>$title</h3>
                 <p name='location'>$Location</p>
                 <h6><b>Description</b></h6>
                 <p>$Description</p>
                 <p>$companyname</p>

          <form action='showPosts.php' method ='POST'>
                 <button class='btn btn-primary' type='submit'>Apply</button>
          </form>

    </div>
    ";   
  }

?>

根据数据库中的记录数显示许多div。当用户单击唯一div的提交按钮并将其发送到showposts.php时,如何获取位置和描述数据。所有其他div都应该发生相同的情况。

2 个答案:

答案 0 :(得分:4)

如果您将这些字段作为隐藏字段添加到表单中,则非常简单-单击提交按钮时,值将被提交回服务器:

<form action='showPosts.php' method ='POST'>
  <input type='hidden' name='Description' value='$Description'/>
  <input type='hidden' name='Location' value='$Location'/>
  <button class='btn btn-primary' type='submit'>Apply</button>
</form>

我也许建议您最好只为帖子提交一个唯一的ID,而不要为帖子中的特定字段提交。然后,服务器可以确定真正引用了哪个帖子,并且当然可以根据需要再次从数据库中检索其余数据。例如假设您有一个名为$PostID的变量,它是数据库中帖子的ID,那么您可以执行以下操作:

<form action='showPosts.php' method ='POST'>
  <input type='hidden' name='PostID' value='$PostID'/>
  <button class='btn btn-primary' type='submit'>Apply</button>
</form>

P.S。在id='hey'中包含<div会导致HTML无效-ID是用来唯一标识元素的,但是由于您多次回显此元素,因此您将得到许多具有相同元素的元素ID。显然,这是没有意义的,也是不允许的。例如,如果您尝试使用JavaScript选择div,它将给您带来麻烦。

答案 1 :(得分:1)

使用此解决方案将您的数据ID发送到其他php页面

<form action='showPosts.php' method ='POST'>
<input type="hidden" name="postid" value="<?php echo $postid; ?>">
                 <button class='btn btn-primary' type='submit'>Apply</button>
          </form>

或者您可以简单地使用

<a href="showPosts.php?id=<?php echo $postid; ?>" class='btn btn-primary'>Apply</a>