AJAX: добиться эффекта require из PHP

280
12 января 2017, 07:43

Как добиться эффекта, аналогичному

require `content.php`;

с помощью AJAX? Данная задача актуальна, например, при создании вкладок.

В content.php находится, большей частью, html-код, ну может быть с небольшим добавлением php-кода. Конечно, можно весь HTML-код запихнуть в echo (во всех примерах AJAX, что я видел, так и делалось), но тогда теряется подцветка HTML-синтаксиса, что недопустимо.

Answer 1

Для начала стоит разделить весь проект на 2 части.
1 - Серверная часть (backend)
2 - Клиентская часть (frontend)

Если пользователь уже открыл страницу, серверная часть уже закончила свою работу и теперь только клиентская часть может работать дальше. Ничто не мешает клиентской части обращаться к серверной с помощью AJAX.
Из вопроса не совсем понятно, какого результата необходимо добиться. Подозреваю, что есть php файл, который должен вернуть HTML страницу, которую, в свою очередь клиент получит посредством AJAX.

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

<?php 
$title = 'Заголовок страницы'; 
$body = 'Тело страницы'; 
$list = [1=>'Первый',2=>'Второй',3=>'Третий']; 
?> 
<html> 
  <body> 
    <h1><?=$title?></h1> 
    <p><?=$body?></p> 
    <select name="select"> 
      <?php foreach ($list as $value=>$title):?> 
        <option value="<?=$value?>"><?=$title?></option> 
      <?php endforeach;?> 
    </select> 
  </body>   
</html>

Answer 2

Нашел решение. Метод load() библиотеки jQuery (а без неё использование AJAX довольно громоздкое) позволяет загрузить содержимое файла внутрь указанного тэга.

$('#container').load('content/content.php');

Подробнее можно почитать здесь.

READ ALSO
Ошибка: Warning: Illegal string offset

Ошибка: Warning: Illegal string offset

Немного покурочил класс Walker_Nav_Menu в worpress, цель была заменить стандартные классы меню, на своиВот код:

347
Можно ли парсить авторизацию?

Можно ли парсить авторизацию?

Предположим, у нас есть сайт, который парсит данные с другого сайтаПользователь авторизован на другом сайте и зашел в аккаунт

272
PHP | Подключение к MySQL

PHP | Подключение к MySQL

Все привет, как и в Visual Studio через PHPStorm я подключил БД

342