dongxi5494 2017-05-18 19:19
浏览 30

JQuery通过类提交表单发送动态数据问题

I use this jquery script to send data to database:

$(document).ready(function(){
$(".commentForm").bind('submit', function(){
var usercomment = $(".articleComment").val();
var categoryid = $(".categoryid").val();
var userid = $(".userid").val();
var ARID = $(".ARID").val();
// Returns successful data submission message when the entered information is stored in database.
var dataString = 'userid='+ userid + '&articleComment='+ usercomment + '&ARID='+ ARID + '&categoryid='+ categoryid;
// AJAX Code To Submit Form.
$.ajax({
type: "POST",
url: "comment.php",
data: dataString,
cache: false,
success: function(response){
   $(".articlebox").html(response);
       $(".commentForm").trigger("reset");
}
});

return false;
});
});

This is the form place after a while statement that generates all the articles for one given categories.

<form class="commentForm" method="POST" action="comment.php">
    <textarea class="articleComment" placeholder="Leave a comment..." name='articleComment'></textarea>
    <br><br>
    <?php if ($myuserplan['Plan_name'] == 'Free'): ?>
        <button disabled type="submit" class="btn btn-default pull-right" name='addComment'>Send</button>
    <?php elseif ($myuserplan['Plan_name'] != 'Free'): ?>
        <button type="submit" class="btn btn-default pull-right submitme" name='addComment'>Send</button>
    <?php endif; ?>
    <input class="userid" type='hidden' value='<?= $loginid_session; ?>' name='userid'>
    <input class="ARID" type='hidden' value='<?= $getarticle['ARID']; ?>' name='ARID'>
    <input class="categoryid" type='hidden' value='<?= $getarticle['CategoryId']; ?>' name='categoryid'>
</form>

Everything works fine when there is only one article per category. When there are several articles on the same page, when I comment on one article, all other articles in the same category also receive the comment which is wrong. I tried .live and .submit same behavior. How can I fix this?

EDIT comment.php

            //get variables
            $articleComment = $_POST['articleComment'];
            $ARID = $_POST['ARID'];
            $userid = $_POST['userid'];
            $categoryid=$_POST['categoryid'];
            $id = $categoryid;

            //insert in ve_articles_comments
            $usercommentQ = $db->prepare("INSERT INTO ve_articles_comments (UserId,ArticleId,Comments) VALUES (?,?,?)");
            $usercommentQ->bind_param("iis",$userid,$ARID,$articleComment);
            $usercommentQ->execute() or die(mysqli_error($db)); 

            $selectarticleN=  mysqli_query($db, "SELECT ArticleName, CategoryId FROM ve_articles WHERE ARID='$ARID'");
            $rowart = mysqli_fetch_array($selectarticleN,MYSQLI_ASSOC);
            $article_name = $rowart['ArticleName'];
            $article_cat = $rowart['CategoryId'];

            $selectarticleQ=  mysqli_query($db, "SELECT Category FROM ve_articles_categories WHERE id='$article_cat'");
            $rowcat = mysqli_fetch_array($selectarticleQ,MYSQLI_ASSOC);
            $category_name = $rowcat['Category'];

            $event="commented on $article_name in $category_name";
            $livestreamQ = $db->prepare("INSERT INTO ve_livestream (UserId,Event) VALUES (?,?)");
            $livestreamQ->bind_param("is",$userid,$event);
            $livestreamQ->execute() or die(mysqli_error($db)); 

            $getuserarticles = "SELECT * FROM ve_articles a LEFT JOIN ve_articles_categories c ON a.CategoryId=c.id LEFT JOIN ve_users u ON a.UsersId=u.UserID WHERE a.CategoryId='$id' GROUP BY a.ARID ORDER BY a.ArticleTime";
            $resultarticles =mysqli_query($db,$getuserarticles);
            $getarticle = mysqli_fetch_array($resultarticles,MYSQLI_ASSOC);
            $articleCommsQ="SELECT * FROM ve_articles_comments ac JOIN ve_users u ON ac.UserId=u.UserID WHERE ac.ArticleId={$getarticle['ARID']} ORDER BY DateTime DESC";
                $resultarticlecomms=mysqli_query($db, $articleCommsQ);


if ($usercommentQ) {
    while ($getarticlecomms = mysqli_fetch_array($resultarticlecomms)) {
        $checkavatar = mysqli_query(
            $db,
            "SELECT * FROM ve_photos p WHERE p.UserID={$getarticle['UsersId']} AND IsPrimaryPhoto='1' ORDER BY InsertDate LIMIT 1"
        );
        $rowav = mysqli_fetch_array($checkavatar, MYSQLI_ASSOC);
        echo "   <div class='row'> ";
        echo "<div  style='width:75% !important; margin:auto;' class='articlebox'>";
        echo " <p style=''> ";

        echo " <a href='profile.php?viewuserprofile= " . $getarticle['UsersId'] . ">' ";

        if (mysqli_num_rows($checkavatar) == 0) {
            echo " <img style='width: 10% !important;' class='tableimg' src='uploads/userdefault.png' alt='profilename'> ";
        } elseif (mysqli_num_rows($checkavatar) > 0) {
            echo " <img style='width: 10% !important;' class='tableimg' src='core/" . $rowav['PhotoPath'] . " >' alt='profilename'> ";
        }

        echo "    </a>   ";

        echo " </p> ";

        echo "  <span style='padding-left:10%;'>" . $getarticlecomms['ProfileName'] . " |  " . $getarticlecomms['DateTime'] . "  </span>";
        echo "   <p class='bubbleother pull-right'>" . $getarticlecomms['Comments'] . " </p> ";

        echo "   </div> ";
        echo "   </div> ";
    }
}
$usercommentQ->close();
$db->close();
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 如何用python向钉钉机器人发送可以放大的图片?
    • ¥15 vue3加ant-design-vue无法渲染出页面
    • ¥15 matlab(相关搜索:紧聚焦)
    • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
    • ¥15 路易威登官网 里边的参数逆向
    • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
    • ¥50 需求一个up主付费课程
    • ¥20 模型在y分布之外的数据上预测能力不好如何解决
    • ¥15 processing提取音乐节奏
    • ¥15 gg加速器加速游戏时,提示不是x86架构