回应<div>并获取它的id </div>

时间:2013-03-25 22:37:45

标签: php html

目前,在显示用户发布的所有帖子时,我会执行以下操作:

while($info=mysql_fetch_array($data)) {
echo "<div id = 'posts'>";
   echo $info['subject'];
   echo $info['post-item'];
echo "</div>";

}
但是,但是,我现在需要将获取的每个元素视为实际帖子而不仅仅是输出div以获取每个帖子的post_id,以便能够实际使用户能够与不同的帖子进行交互,例如“喜欢”一个帖子。

我曾尝试将类似 href的超链接添加到?id=$thispost,但是有一些问题,例如用户更改了网址,或者即使我想添加评论功能,我也会需要一种不同的方法!

1 个答案:

答案 0 :(得分:2)

对于不同的任务,你会传递不同的查询字符串:

<a href="page.php?do=like&id=2">like this</a>
<a href="page.php?do=comment&id=2">comment</a>
<a href="page.php?do=share&id=2">share this</a>

page.php中,您会......

if (isset($_GET['do'] && isset($_GET['id'])) {
    $do = $_GET['do'];
    $id = $_GET['id'];
} else exit("blabla");

switch ($do) {

    case 'like':
        // do sth
        break;

    case 'comment':
        // do sth
        break;

    // etc.

} // switch

当然,通过URL传递值会打开操纵门 因此,要么$do还要$id$_SESSION中存储$_POST$_POST

$h = ""; while ($info = mysql_fetch_array($data)) { $h .= '<div id = "posts">'; $h .= '<form method="post" action="page.php">'; $h .= "{$info['subject']}<br />{$info['post-item']}"; $h .= "<input type=\"hidden\" name=\"id\” value=\”{$info['id']}\” />'; $h .= '<input type="submit" name="do" value="like" />'; $h .= '</form></div>'; } echo $h; 的示例:

mysql_*

评论:
1.不要使用mysqli_*,而是PDOpage.php - &gt;使您的代码面向未来,更安全 2.此代码围绕每个帖子创建一个表单,其中隐藏字段包含该帖子的id(来自db)...
3.以及一个按钮,它会将用户看不见的ID发送到page.php。 4.在$_POST中,您阅读了$_GET,就像我上面的if (isset($_POST['id'])) { $do = $_POST['do']; $id = $_POST['id']; } else exit("blabla"); // etc. 一样:

{{1}}