我正在创建网站项目,您可以在帖子发布后对其进行编辑。我已经使用 PHP、SQL 和 jQuery 创建了网站,并且所有发布到该网站的帖子都通过 while 循环(不包括在此问题内容中)输出到网站“提要”。所有帖子在发布时(在数据库中)都有一个唯一的 ID。
我现在遇到的问题是第二种形式(post__edit)根本没有提示。
我发现我需要在<input type="hidden" value="$postID">字段中传递帖子的 id。下面的这个表单只是提示用于提交帖子更改的实际post_edit表单。
echo '
<form method="post">
<button type="button" class="post__editBtn">Edit post</button>
<input type="hidden" name="post__editHidden" value="'.$postID.'">
</form>';
当按钮类:post__editBtn被点击时,会触发一个 jQuery click 事件监听器,该事件监听器会以淡入淡出的形式(post_edit)让您对帖子进行更改并提交它们。
$('.post__editBtn').click(function() {
$('.post__edit').fadeIn();
});
然后我有一个 PHP if 语句来检查隐藏值是否已设置。如果有,那么我会回显先前隐藏的表单,并分配一个 SESSION 变量以供稍后在执行 UPDATE 查询时使用。
if(isset($_POST['post__editHidden'])) {
$_SESSION['post__editHidden'] = $_POST['post__editHidden'];
echo'
<form method="post" action="../../php/includes/updatePost.php" class="post__edit">
<input type="text" name="postTitle" placeholder="Edit title" required>
<textarea name="postMsg" maxlength="255" placeholder="Edit message" required></textarea>
<button type="submit">Edit Post</button>
<button class="post__edit-close">Close</button>
</form>';
}
总结
第一个表单触发正确帖子的 jQuery 淡入效果(使用$postID)
jQuery 只是以第二种形式淡出(post__edit)
第二种形式(post__edit)获取post__editHidden值(正确帖子的正确 ID)并将其分配给 SESSION 变量,该变量稍后可用于进行 SQL UPDATE 查询,该查询在最终提交第二种形式时运行(到 updatePost. php)。
我相信因为我设置了第一个表单按钮,type="button"所以它不会提交表单,所以isset($_POST['post__editHidden']不会运行。但是,如果我将按钮更改为正常的提交类型,那么第一个表单就会出现并重新加载它所在的页面。我可能只是e.preventDefault在我的 jQuery fadeIn 中,但我不知道这是否有效。
我对 PHP 和 SQL 很陌生,所以我可能全都错了。不管怎么说,多谢拉!
江户川乱折腾
慕的地6264312
随时随地看视频慕课网APP