Ajax функция не показывает вид, включенный в контроллер - PullRequest
0 голосов
/ 27 апреля 2020

Я пытаюсь это сделать: при нажатии на изображение выполняется функция, эта функция собирает значение и отправляет его через POST в контроллер, этот контроллер собирает эти данные и отображает представление. Проблема в том, что все работает, но он не показывает мне вид, я остаюсь там, где был.

Изображение, которое вызывает функцию при нажатии:

image

Функция:

function getSubjectPublication(data){
console.log("EntroFuncion");
console.log(data);

$.ajax({
    type: "POST",
    url: "perfil.php/" + "subjectPublications",
    data: {"data":data},
    success: function(response) {
        console.log(response);
    },
    error: function(t, e) {
        window.alert("Error al intentar visualitzar les publicacions");
    }
})}

Функция вызывает этот общий контроллер (lib), она собирает отправленные данные и передает их в указанный c контроллер:

case 'subjectPublications':
        $controllerName = "SubjectPublicationsController";
        $actionName = "showSubjectPublications";
        $data = $_POST['data'];
        array_push($parameters, $data);
        break;

Specifi c Контроллер:

<?php class SubjectPublicationsController{
function __construct(){

    $this->view = new View();
}

public function showSubjectPublications($parameters){

    require 'models/PublicationsSubjectModel.php';

    $publicationsSubjectModel = new PublicationsSubjectModel();
    $data  = $parameters[0];
    echo "<script>console.log('ENTROFINAL');</script>";
    echo "<script>console.log('. json_encode( $data ) .');</script>";
    $subjectPublications = $publicationsSubjectModel->getPublicationOfSubject($data);

    $route = $this->view->show("PublicationsSubject.php");

    $publicationsSubjectModel->disconnect();

    include ($route);

}}?>

Дело в том, что в браузере консоли он показывает мне console.log, который я делаю в функции, и ответ возвращает весь веб, включая представление, которое я включаю в контроллер (представление, которое я хотел показать в браузере), но он не показывает его на экране, я продолжаю работать с тем же экраном, а не с тем, который я включил в контроллер. Что я делаю неправильно? Снимок экрана браузера

1 Ответ

0 голосов
/ 28 апреля 2020

Когда вы выполняете запрос ajax, вы обычно хотите отправить обратно объект json. В этом случае, возможно, об изображении, которое вы нажали. Затем вы делаете что-то с этим в своей функции успеха, например, оповещение - или показывает всплывающее окно или что-то. Посмотрите на json_encode, чтобы отправить ваши данные обратно с вашей php страницы php .net / manual / en / function. json -encode. php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...