我想为我的帖子创建一个编辑功能。到目前为止,您可以从管理页面发布和查看您的帖子,该页面由 mySQL 操作,但不久前我想制作一个编辑按钮。 理论是,当您单击编辑按钮时,javascript 获取帖子元素的 id,然后在运行 id = PostID 的 mysql 查询后,它将重定向到一个页面,您可以在其中编辑帖子。 html 输入值将是从 mysql 中读出的数据,但 javascript 只是不想启动。
帖子的 php/html 看起来像这样:
while($row = mysqli_fetch_array($run)) {
echo '<article id="post" data-postid="'.$row["id"].'">
<ul>
<li class="id">'.$row["id"].'</li>
<li class="title">'.$row["title"].'</li>
<li class="postedBy">'.$row["postedBy"].'</li>
<li class="postedBy">'.$row["dDate"].'</li>
<li class="prio">'.$row["priority"].'</li>
<li class="icons"><div class="do" data-action="edit"><i class="fa fa-pencil-square-o"></i></div><div class="do" data-action="delete"><i class="fa fa-times"></i></div></li>
</ul>
</article>';
Javascript 看起来像这样(它叫做 admin_edit.js):
$('#post').on('click', '.do', function(){
var self = $(this); // cache $this
var action = self.data('action'); // grab action data edit/delete
var postid = parent.data('postid'); // grab post id from data-postid
// edit action
if (action == 'edit') {
// send js to php
$.post("../admin/post_edit.php", { postId: postid } );
}
// delete action
else if (action == 'delete'){
// send ajax request
// Something.
};
});
要了解我的文件夹结构: 我们在 root/admin 文件夹和 root/admin/admin.php 页面上。 javascript 位于 root/js 文件夹中,名为 root/js/admin_edit.js。
为什么 js 不想启动?
提前致谢!
最佳答案
当您定义其click
事件时,您的#post
不存在。您需要在事件已经存在时对其进行定义。您可以为 #main
注册事件,但您也可以在请求的回调中注册事件。如果可能,最好在回调中注册它。
关于javascript - 单击函数调用 javascript 然后重定向到 php 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25976433/