Я хочу остаться на той же странице после того, как я сообщу комментарий

0

поэтому я хочу сделать небольшой блог в php и mysql, используя mvc arhitecture.i, чтобы добавить функцию, в которой вы можете сообщить комментарий (все прошло хорошо, но я не могу понять, как оставаться на одной странице после сообщения)

для показа страницы с сообщением и комментариями для этого сообщения я использую 2 функции

public function getPost($postId)
{
    $db = $this->dbConnect();
    $req = $db->prepare('SELECT id, title, content, DATE_FORMAT(creation_date, \'%d/%m/%Y à %Hh%imin%ss\') AS creation_date_fr FROM posts WHERE id = ?');
    $req->execute(array($postId));
    $post = $req->fetch();
    return $post;
}

public function getComments($postId)
{
    $db = $this->dbConnect();
    $comments = $db->prepare('SELECT id, author, comment,report_status, DATE_FORMAT(comment_date, \'%d/%m/%Y à %Hh%imin%ss\') AS comment_date_fr FROM comments WHERE post_id = ? ORDER BY comment_date DESC');
    $comments->execute(array($postId));
    return $comments;
}

и это мой контроллер:

function post(){
    $postManager = new PostManager();
    $commentManager = new CommentManager();

    $post = $postManager->getPost($_GET['id']);
    $comments = $commentManager->getComments($_GET['id']);

    require('view/frontend/postView.php');
    }

моя функция для представления комментариев - это

public function reportComment($id)
{
    $db = $this->dbConnect();
    $report = $db->prepare('UPDATE comments SET report_status = 1 WHERE id = :id');
    $report->bindParam(':id', $id, PDO::PARAM_INT);
    $report->execute();
}

и контроллер

function report(){
    $commentManager = new CommentManager();
    $commentManager->reportComment($_GET['id']);    

}

моя проблема в том, что я не могу перенаправить пользователя на страницу post (id), потому что я уже установил новый $ _GET в id комментария, а не в id сообщения; как я могу сохранить старый идентификатор сообщения, чтобы я мог оставаться на одной странице...

вот мой index.php, чтобы вы получили полную картину

elseif ($_GET['action'] == 'post') {
    if (isset($_GET['id']) && $_GET['id'] > 0) {
        post();
    }...

elseif($_GET['action'] == 'report'){


    if(!empty($_GET['id'])&& $_GET['id'] > 0){
        report();

    }
    else{
        echo 'not reported';
    }
  • 3
    Вы всегда можете сделать это как вызов Ajax, тогда он никогда не покинет и не перезагрузит страницу.
  • 0
    к сожалению, я все еще пытаюсь понять, как работают Ajax. Я попробую. ти
Показать ещё 4 комментария
Теги:

1 ответ

0

почему вы не добавляете больше параметров в $ _GET (например: $ _GET ('post_id'))

и немного исправить в этом коде:

 if(!empty($_GET['id'])&& $_GET['id'] > 0){
        report();
    $postId = $_GET('post_id');
    ///// redirect to post by $postId

 }
  • 0
    я пытался ... он пытается перенаправить меня на пост с идентификатором комментария .. не сам пост.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню