js只处理php生成的第一个表单的值,而不提交其他表单

o8x7eapl  于 2021-09-13  发布在  Java
关注(0)|答案(0)|浏览(202)

**已关闭。**此问题需要调试详细信息。它目前不接受答案。
**想要改进此问题?**更新问题,使其位于堆栈溢出主题上。

20小时前关门了。
改进这个问题

我正试图建立一个网站,人们可以张贴“张贴”

我想给每个用户一个机会,他/她可以报告另一个帖子。
所以,所有的东西都保持干净,错误的帖子可以被管理员识别。
所以我有dashboard.php,它为具有隐藏值的报表生成表单。你可以看到下面。

<?php
$sql = "SELECT * FROM post ORDER BY id DESC LIMIT 1,5";
             $result = $conn->query($sql);

          if ($result->num_rows > 0) {
            // output data of each row
           while($row = $result->fetch_assoc()) {
                 $post_id = $row['id'];
                 $post_fname = $row['fname'];
                 $post_lname = $row['lname'];
                 $about_post = $row['about_post'];
                 $post_image = $row['post_image'];
                 $post_time = $row['timing'];
                 $posted_by_unique_id = $row['unique_id'];
                 $my_image = $row['img'];

                    ?>

                    <?php
                            if ($unique_id === $posted_by_unique_id) {
                                ?>
                                <!--delete post only when my one-->

                                <form action="post/delete_post.php" method="POST">
                                    <input name="post_id" value="<?php echo $post_id;?>" hidden>
                                    <input name="post_image" value="<?php echo $post_image;?>" hidden>
                                <button class="btn btn-danger" type="submit"><i class="fa fa-trash" aria-hidden="true"></i></button>
                                </form>
                                <?php
                                 } else { ?>
                                <!--report button-->
                                <script>

                                </script>
                                <form id="myform" method="POST">
                                    <input id="post_id" name="post_id" value="<?php echo $post_id;?>" hidden>
                                    <input id="posted_by_unique_id" name="posted_by_unique_id" value="<?php echo $posted_by_unique_id;?>" hidden>
                                <button id="button" class="btn btn-danger" title="report post"><i class="fa fa-bug"></i></button>
                                </form>
                                <?php
                                 } 
                                }}
                                 ?>

<!--report js-->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        $('#button').click(function(event){
            event.preventDefault();
            var post_id = $('#post_id').val();
            var posted_by_unique_id = $('#posted_by_unique_id').val();

            $.ajax({
                type: "POST",
                url: "post/report_post.php",
                data: { post_id:post_id, posted_by_unique_id:posted_by_unique_id },         
                dataType: "json",
                success: function(result){

                }
            });
        });
    });
</script>

在这里,我通过会话获取唯一的_id,并尝试与post所有者的唯一id匹配,以生成显示delet或report的逻辑。
我的报告如下所示。

<?php
session_start();
include_once "fetching_data.php"; //stored data
if (isset($_SESSION['unique_id'])) {
    $unique_id = $_SESSION['unique_id'];
    $post_id = $_POST['post_id'];
    $posted_by_unique_id = $_POST['posted_by_unique_id'];

}else{
    header("Location:login.php");
    die();
}

            $sql = "SELECT * FROM report where post_id='$post_id' AND reported_by_unique_id='$unique_id'";
             $result = $conn->query($sql);

          if ($result->num_rows > 0) {
              echo 'already reported';
            // means this user have already reporeted same post
          }else{
            $conn->query("INSERT INTO report (post_id,reported_by_unique_id) VALUES ('$post_id','$unique_id')");

            $conn->query("UPDATE users SET report_count=report_count+1 WHERE unique_id='$posted_by_unique_id'");
            echo 'succedd';
            echo '<script type="text/javascript">';
            echo ' alert("Reported!")';  //not showing an alert box.
            echo '</script>';
            //header("Location:dashboard.php");
          }

?>

只能成功提交第一个表单值。虽然我尝试在刷新后再做一次,但什么也没发生。(可能是因为旧值,我真的不知道!)
请忽略php注入,我将很快使其成为注入证明!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题