AJAX загрузка комментариев на всех страницах - PullRequest
0 голосов
/ 29 апреля 2020

Я создаю небольшой проект службы поддержки, где комментарии могут быть отправлены на странице.

У каждого запроса в службу поддержки будет страница, на которой загружаются данные о билетах.

<?php
if(isset($_GET['id'])){
    $mysqli = NEW MYSQLi ('localhost', 'root','','support');
    $id = mysqli_real_escape_string($mysqli, $_GET['id']);

    $sql="SELECT * FROM newticket WHERE id='$id' ";
    $result =mysqli_query($mysqli, $sql) or die("Bad Query: $sql");
    $row = mysqli_fetch_array($result);
}
?>

При представлении комментария на этой странице комментарий также будет загружен на эту страницу. Теперь, поскольку я отправил на эту страницу, я sh, чтобы он был виден только на этой странице. Но он появляется на всех страницах моего билета.

У меня есть поле в форме, которое отправляет идентификатор страницы в форму комментария. ticket_no Следовательно, ticket_no теперь равен идентификатору страницы и идентификатору заявки. Представление работает нормально, а ticket_no создается.

    <div class="form-group">
    <input type="text" name="ticket_no" id="ticket_no" class="form-control" placeholder="Enter Name" value="<?php echo $row['id']?>" />
    </div>
    <div class="form-group">
     <textarea name="comment_content" id="comment_content" class="form-control" placeholder="Enter Comment" rows="5"></textarea>

fetch_comment. php

<?php


//fetch_comment.php

$connect = new PDO('mysql:host=localhost;dbname=support', 'root', '');



$query = "
SELECT * FROM tbl_comment 
WHERE parent_comment_id = '0' 
ORDER BY comment_id DESC
";

$statement = $connect->prepare($query);

$statement->execute();

$result = $statement->fetchAll();
$output = '';
foreach($result as $row)
{
 $output .= '
 <div class="panel panel-default">
  <div class="panel-heading">By <b>'.$row["comment_sender_name"].'</b> on <i>'.$row["date"].'</i></div>
  <div class="panel-body">'.$row["comment"].'</div>
  <div class="panel-footer" align="right"><button type="button" class="btn btn-default reply" id="'.$row["comment_id"].'">Reply</button></div>
 </div>
 ';
 $output .= get_reply_comment($connect, $row["comment_id"]);
}

echo $output;

function get_reply_comment($connect, $parent_id = 0, $marginleft = 0)
{
 $query = "
 SELECT * FROM tbl_comment WHERE parent_comment_id = '".$parent_id."'
 ";
 $output = '';
 $statement = $connect->prepare($query);
 $statement->execute();
 $result = $statement->fetchAll();
 $count = $statement->rowCount();
 if($parent_id == 0)
 {
  $marginleft = 0;
 }
 else
 {
  $marginleft = $marginleft + 48;
 }
 if($count > 0)
 {
  foreach($result as $row)
  {
   $output .= '
   <div class="panel panel-default" style="margin-left:'.$marginleft.'px">
    <div class="panel-heading">By <b>'.$row["comment_sender_name"].'</b> on <i>'.$row["date"].'</i></div>
    <div class="panel-body">'.$row["comment"].'</div>
    <div class="panel-footer" align="right"><button type="button" class="btn btn-default reply" id="'.$row["comment_id"].'">Reply</button></div>
   </div>
   ';
   $output .= get_reply_comment($connect, $row["comment_id"], $marginleft);
  }
 }
 return $output;
}

?>

Мне нужно загружать комментарии, когда идентификатор страницы / идентификатора билета равен комментарию ticket_no.

ticket. php

<script>
$(document).ready(function(){
 
 $('#comment_form').on('submit', function(event){
  event.preventDefault();
  var form_data = $(this).serialize();
  $.ajax({
   url:"add_comment.php",
   method:"POST",
   data:form_data,
   dataType:"JSON",
   success:function(data)
   {
    if(data.error != '')
    {
     $('#comment_form')[0].reset();
     $('#comment_message').html(data.error);
     $('#comment_id').val('0');
     load_comment();
    }
   }
  })
 });

 load_comment();

 function load_comment()
 {
  $.ajax({
   url:"fetch_comment.php",
   method:"POST",
   success:function(data)
   {
       
    $('#display_comment').html(data);
   }
  })
 }

 $(document).on('click', '.reply', function(){
  var comment_id = $(this).attr("id");
  $('#comment_id').val(comment_id);
  $('#comment_name').focus();
 });
 
});
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...