Does jquery interfere with php?

2019-07-13 13:08发布

问题:

I am trying to limit comments and replies to comments and display an error message once the limit is reached. I have successfully limited comments and comment replies, and successfully provided the error message when prompted ONLY for the comments, and not the comment replies.

The comment replies have a little bit of jquery working with them, so that's the only thing I can see that would be causing the message not to display. I have tried other methods then the one currently being used.

$valid = true;
$max_post_per_day = 5;
$max_reply_per_day = 5;

//THE REGULAR COMMENTS STRUCTURE THAT IS SHOWING THE ERROR MESSAGE PROPERLY

$query = "SELECT COUNT(*) FROM `cysticBlogComments`
              WHERE `userID` = $auth->id
                AND `date` = CURDATE()";
    $result = mysql_query($query, $connection);
    $post_count = mysql_result($result, 0);
    $error_msgs_max_comment[] = "Whoops! You have reached the maximum amount of comments allowed for the day.";

    if($post_count >= $max_post_per_day)
    {
        $valid = false;
    }
    else
    {

    $query = "INSERT INTO `cysticBlogComments` 
                                    ( `blogID`,
                                      `userID`,
                                      `commentBody`,
                                      `status`,
                                      `date`,
                                      `time`
                                      ) VALUES (

                                      '" . $blogID ."',
                                      '" . $auth->id ."',
                                      '" . mysql_real_escape_string($_POST['BlogComment']) ."',
                                      'active',
                                      '" . date("Y-m-d") . "',
                                      '" . date("G:i:s") . "')";


    mysql_query($query, $connection);

}

<?php if(isset($_POST['commentBlogSubmit']) && $post_count >= $max_post_per_day ) {
                foreach($error_msgs_max_comment as $msg) { ?>
                <div id="error_x">
                <?php echo $msg; ?>
                </div>
                <?php }
                }?>

//THE REPLY COMMENT STRUCTURE THAT IS LIMITING BUY NOT DISPLAYING ERROR AND HAS JQUERY WITH IT

$query = "SELECT COUNT(*) FROM `CysticBlogComments_replies`
                      WHERE `FromUserID` = $auth->id
                        AND `date` = CURDATE()";
            $result = mysql_query($query, $connection);
            $post_count = mysql_result($result, 0);
            $error_msgs_max_reply[] = "Whoops! You have reached the maximum amount of replies allowed for the day.";

            if($post_count >= $max_reply_per_day)
            {
                $valid = false;
                echo $error_msgs_max_reply;
            }
            else
            {

    $query = "INSERT INTO `CysticBlogComments_replies`
                                        ( `BlogCommentID`,
                                          `FromUserID`,
                                          `comment`,
                                          `status`,
                                          `date`,
                                          `time`
                                        ) VALUES (

                                        '" . mysql_real_escape_string($_POST['comment']) ."',
                                        '" . $auth->id ."',
                                        '" . mysql_real_escape_string($_POST['reply'])."',
                                        'active',
                                        '" . date("Y-m-d") . "',
                                        '" . date("G:i:s") . "')";

    mysql_query($query, $connection);
}

<?php if(isset($_POST['sub_comment_reply']) && $post_count >= $max_reply_per_day ) {
                foreach($error_msgs_max_reply as $msg) { ?>
                <div id="error_x">
                <?php echo $msg; ?>
                </div>
                <?php }
                }?>

//THE JS FOR THE REPLIES

<script type="text/javascript">
        $(document).ready( function() {

            $.localScroll({ offset:{top:-40,left:0} });

            $("a.reply_link").click( function() {
                $("#"+$(this).attr('name')).fadeIn('slow');
            });

            $(".respond_nevermind a").click( function(event) {
                event.preventDefault();
                var reply_box = document.getElementById($(this).attr('href'));
                $(reply_box).css('display','none');

                var reply_textarea = document.getElementById($(this).attr('href')+"_textarea");
                $(reply_textarea).val('');
            });
        });
</script>

回答1:

PHP operates on the server before JavaScript is ever executed so the two can't be interacting. The JavaScript could be having issues with the HTML produced by the PHP, though (in other words, there's just a JavaScript error) or the HTML itself may contain an error such as a missing closing > or quote.



回答2:

It looks like you are not closing the <?php tag properly after the second mysql_query() call. You're opening a new <?php tag but I don't see the previous <?php tag being closed.



标签: php jquery echo