首页 > 解决方案 > ajax 响应显示 javascript 而不是隐藏它

问题描述

我正在构建一个评论系统,其中具有以下功能:删除主要帖子,删除评论,删除回复,编辑主要帖子,编辑评论,编辑回复,阅读更多/阅读少于 250 个字符的帖子。所以我现在正处于对评论的回复帖子进行编辑的阶段,除了这个之外,其他一切都运行良好,当我点击时,我需要查看带有阅读更多/阅读更少功能的回复帖子,所以要在之后发生这种情况ajax 响应我需要在编辑回复的 php 脚本中粘贴此功能的 javascript 代码,所以当我.html(data)我看到我希望显示响应的跨度内的 javascript 代码!请帮忙 !我为评论制作了相同的脚本,并以相同的方式将 javascript 代码放置在编辑评论的 php 页面中,但我没有看到 javascript 行!下面是显示正在发生的事情的图片以及接下来我的脚本:

    // THIS TAKES CARE OF THE EDIT FEATURE OF THE REPLY ON BOARD_COMMENT PAGE 
$(document).on("click", ".board_reply_edit_button", function() {
    // this will select the form in which is contained the edit button
    var editBoardButtonAttribute = $(this).attr("id");
    var editBoardButtonIdArray = editBoardButtonAttribute.split("-");
    var editBoardButtonId = editBoardButtonIdArray[0];

    $("#"+editBoardButtonId+"-formBoardReplyEdit").toggle();
    $("#"+editBoardButtonId+"-spanBoardReplyEdit").toggle();

    // if the cancel button is clicked, this happens
    $(document).on("click", ".board_cancel_button", function() {
        // this will select the form in which is contained the edit button
        var cancelBoardAttribute = $(this).attr("id");
        var cancelBoardButtonIdArray = cancelBoardAttribute.split("-");
        var cancelBoardButtonId = cancelBoardButtonIdArray[0];

        $("#"+cancelBoardButtonId+"-formBoardReplyEdit").hide();
        $("#"+cancelBoardButtonId+"-spanBoardReplyEdit").show();

    });

    // if the edit button is clicked we send this ajax call
    $(document).on("click", ".board_edit_save_button", function(e) {
        e.preventDefault();

        // this will select the form in which is contained the edit button
        var saveBoardAttribute = $(this).attr("id");
        var saveBoardButtonIdArray = saveBoardAttribute.split("-");
        var saveBoardButtonId = saveBoardButtonIdArray[0];

        var editBoardTextareaVal = $("#"+saveBoardButtonId+"-textareaBoardReplyEdit").val();

        url = "widgets/edit_board_comment_reply.php";

        if (editBoardTextareaVal === "") {
            CustomSending("This post can't be left blank")
            setTimeout(function () {
                $("#sending_box").fadeOut("Slow");
                $("#dialogoverlay").fadeOut("Slow");
            }, 2000);
            // this makes the scroll feature comes back
            setTimeout(function(){
                $("body").css("overflow", "auto");
            }, 2001);
        } else {

            $.ajax({
                url: url, 
                method: "POST",
                data: {
                    reply_id: saveBoardButtonId,
                    board_reply_textarea: editBoardTextareaVal
                },
                beforeSend: function() {
                    CustomSending("Sending...");
                },
                success: function(data){
                    $("#sending_box").fadeOut("Slow");
                    $("#dialogoverlay").fadeOut("Slow");
                    // this makes the scroll feature comes back

                    $("body").css("overflow", "auto");

                    $("#"+saveBoardButtonId+"-spanBoardReplyEdit").html(data); //// THIS IS THE KEY LINE
                    $("#"+saveBoardButtonId+"-formBoardReplyEdit").hide();
                    $("#"+saveBoardButtonId+"-spanBoardReplyEdit").show();
                }
            });
        }
    });

});

这是图片,关键行在最后的代码中

这是 edit_board_comment_reply.php 文件:

  <?php 
require_once '../includes/session.php';
require_once '../includes/functions.php';
require_once '../includes/validation_functions.php';


if(isset($_POST['reply_id'], $_POST['board_reply_textarea'])) {
    $reply_id = (int)$_POST['reply_id'];
    $board_reply_textarea = mysql_prep($_POST['board_reply_textarea']);

    // INSERT into table
    $query  = "UPDATE board_comment_reply_table ";
    $query .= "SET reply = '$board_reply_textarea' ";
    $query .= "WHERE reply_id = $reply_id";
    $result = mysqli_query($connection, $query);

    // now we select the updated board post
    $query2 = "SELECT * FROM board_comment_reply_table ";
    $query2 .= "WHERE reply_id = $reply_id ";
    $result2 = mysqli_query($connection, $query2);
    confirm_query($result2);
    $result_array = mysqli_fetch_assoc($result2);


}
echo nl2br($result_array['reply']);

?>

<script>
// This takes care of the board comment Continue Reading feature ---------------------------------------------------------
$(".reply_content_span").each(function(){
    var boardReplyPostThis = $(this);
    var boardPostText = $(this).text();
    var boardPostLength = boardPostText.length;
    var boardIdAttribute1 = $(this).attr("id");
    var boardIdAttributeArray1 = boardIdAttribute1.split("-");
    var boardPostId = boardIdAttributeArray1[0];
    var boardPostUserId = boardIdAttributeArray1[1];

    if(boardPostLength > 250) {
        var boardPostTextCut = boardPostText.substr(0, 250);
        boardReplyPostThis.text(boardPostTextCut+"...");
        boardReplyPostThis.append('<a class="board_read_more_link board_reply_read_more" id="'+boardPostId+'-readMoreComment">Read More</a>');
    } else {
        boardReplyPostThis.text(boardPostText);
    }


    $("body").on("click", ".board_reply_read_more", function(e){
        e.preventDefault();
        boardReplyPostThis.text(boardPostText);
        boardReplyPostThis.append('<a class="board_read_more_link board_reply_read_less">Read Less</a>');
    });

    $("body").on("click", ".board_reply_read_less", function(e){
        e.preventDefault();
        boardReplyPostThis.text(boardPostTextCut+"...");
        boardReplyPostThis.append('<a class="board_read_more_link board_reply_read_more">Read More</a>');
    });

});

</script>

这是html代码:

<span class="comment_content_span" id="<?php echo $board_comment_id_number;?>-spanBoardCommentEdit"><?php echo nl2br($board_comment_text);?></span>
                    <form action="" method="post" class="board_comment_edit_form" id="<?php echo $board_comment_id_number;?>-formBoardCommentEdit">
                        <textarea rows="2" name="board_comment_edit_textarea" class="board_comment_edit_textarea" id="<?php echo $board_comment_id_number;?>-textareaBoardEdit"><?php echo $board_comment_text;?></textarea>
                        <input type="submit" value="Edit" class="board_edit_save_button" id="<?php echo $board_comment_id_number;?>-saveBoardCommentEdit"/>
                        <input type="button" value="Cancel" class="board_cancel_button" id="<?php echo $board_comment_id_number;?>-cancelBoardCommentEdit"/>
                    </form>

标签: javascriptphpjqueryajax

解决方案


找到解决方案!

而不是脚本标签之间的javascript,我在edit_board_comment_reply.php中添加了这一行

<script src="js/board.js"></script>

推荐阅读