Включить php файл через Ajax и отобразить на странице - PullRequest
0 голосов
/ 18 октября 2018

Мне было интересно, есть ли способ включить файл php после вызова AJAX и отобразить этот файл на моей странице в качестве ответа.

Например, это вызов ajax:

$('#id').change(function(){
    var selected = $(this).val();
    $.ajax({
        url:  "ajax.php",
        type: "POST",
        data: "select="+selected,
        success: function (data) {
            $("#here").html(data);
        }
    });
});

И это то, что я пробовал в php, но я не получил результат, отображаемый в моем HTML:

if(isset($_POST['select'])){
    $post= $_POST['select'];

    $class = ClassName::find_by_id($post);

    $sql = " sp_SQLStoredproc {$class->id} ";
    if($class->hasRows($sql)){
        include("include.php");
    }

}

Есть ли способ отобразить мой включенный файл в моем HTML?

Я попытался изменить свой успешный ответ с Ajax $("#here").html(data); на $("#here").load(data);, но он вернул всю страницу.

Любые предложения помогут.

ОБНОВЛЕНИЕ: Внутри файла include.php существует длинный HTML-код и некоторые методы класса

PS.Пожалуйста, не упоминайте, что сценарий небезопасен, я знаю, что это всего лишь пример сценария.

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

вы можете установить все ваши "include.php" html в буферах, а затем вам нужно будет выводить ваш контент в консоль.

<?php
    if(isset($_POST['select'])){
        $post= $_POST['select'];

        $class = ClassName::find_by_id($post);

        $sql = " sp_SQLStoredproc {$class->id} ";
        if($class->hasRows($sql)){
            ob_starts();
            include("include.php");
            $include = ob_get_contents();
            echo $include;
        }
    }
?>
0 голосов
/ 18 октября 2018

Чтобы получить данные об успехе, вам необходимо вернуть данные, которые вы хотите включить.И помните, php не будет работать в html, за исключением того, что это вызов действия.Для этого у вас может быть файл php, так как он также поддерживает html.

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

if(isset($_POST['select'])){
    $post= $_POST['select'];

    $class = ClassName::find_by_id($post);

    $sql = " sp_SQLStoredproc {$class->id} ";
    if($class->hasRows($sql)){
        return include("include.php");
    }

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