2012-04-27 81 views
2

我試圖限制對評論的評論和回覆,並在達到限制時顯示錯誤消息。我已經成功地限制了評論和評論回覆,並且只在提示時才成功提供了錯誤消息,而不是評論回覆。jQuery會干擾PHP嗎?

評論回覆有一點jquery與他們合作,所以這是我能看到的唯一一個會導致消息不顯示的唯一的東西。我嘗試了其他方法,然後使用當前正在使用的方法。

$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> 
+0

jQuery不能干擾PHP,但是你可能會影響DOM並阻止某些東西出現。檢查您在瀏覽器中收到的頁面代碼,以確定您的數據是否存在。 – 2012-04-28 00:11:11

回答

5

PHP服務器上運行之前曾經執行,因此兩者不能交互的JavaScript。 JavaScript 可能可能與PHP生成的HTML有問題(換句話說,這只是一個JavaScript錯誤),或者HTML本身可能包含一個錯誤,例如缺少關閉>或引用。

+0

我很新的j查詢,你有沒有發現任何錯誤? – LightningWrist 2012-04-30 16:11:10

0

看起來你沒有在第二個mysql_query()呼叫後正確關閉<?php標籤。您正在打開一個新的<?php標籤,但我沒有看到之前的<?php標籤已關閉。