Генерация html файлов при помощи PHP

программирование php html AJAX

В общем, существует такая проблема. Есть index, в который через AJAX передается собственно контент. Имеется код
$.ajax({
type: "POST",
url: "handler.php",
data: 'page='+url,
dataType: "html",
success: function(msg)
Суть в том, что идет запрос к обработчику, который проверяет наличие страницы в каталоге и при наличии этой страницы отправляет подтверждение скрипту, который подгружает содержимое. А теперь собственно проблема - контент генерируется при помощи PHP+MySQL. При выводе содержимого выводится(извиняюсь за тафтологию, 5 утра все-таки уже) структура PHP кода, не обработаная сервером(причем, что меня удивило, не вся). Гугление ничем не помогло. Вижу пока одно нормальное(???) решение - генерация HTML кода в отдельный файл и подгрузка уже его в index. И тут возникла главная загвоздка - и каким образом его правильно сгенерировать? Или есть другие варианты решения? Спасибо за ответы!

Примечание:
синтаксис обработчика правильный, суть в чем. Через $_POST получаем имя запрашиваемой страницы, приводим к числовому значению через функцию int() (хацкеры не пройдут=))), потом проверяем наличие данной страницы в каталоге, потом выводим HTML код файла. Проблема в том, что выводятся и PHP тэги без обработки их сервером.

Примечание:
Да, я использую Jquery.
<quote>
в результате Вы получаете
[html]
<div id='что-то'>текст</div>
<div id='куда подгрузить содержимое'>удачно</div>
[/html]
или
[html]
<div id='что-то'>текст</div>
<div id='куда подгрузить содержимое'>неудачно</div>
[/html]
</quote>
Именно такая структура у меня и идет, данные подгружаются в pagecontainer. Возможно, не совсем удачно описал проблему. скрипт и обработчик работают верно. В случае совпадения данных с суперглобального массива $_POST идет проверка существования файла в каталоге /pages, код следующий.
if(file_exists('pages/'.$page.'.php'))
echo file_get_contents('pages/'.$page.'.php');
Проблема в том, что данные выводятся без обработки сервером PHP, то есть например
while($result = mysql_fetch_array($row))
{
echo '<p>'.$result.'</p';}
выводится именно в таком виде а не <p>$result1</p>...<p>$resultN</p>
Ответы:
Возможно у Вас в handler.php не весь php код находится между тегами <?php и ?>
я так понимаю Вы используете jquery...
на вашем месте я бы прибег к load
<!--ПРИМЕР-->
index.php
у Вас есть 'что-то' по нажатию на которое выполняется отправка url в ajax-обработчик
[html]
<div id='что-то'>текст</div>
<div id='куда подгрузить содержимое'></div>
[/html]
javascript
[script]
$('#что-то').click(function(){
$('куда подгрузить содержимое').load('обработчик.php', {'page':url});
})
[/script]
обработчик.php
[html]
<?php
if($_POST['url']=='чему-то')
{
     echo('удачно');
}
else
{
      echo('неудачно');
}
?>
[/html]
в результате Вы получаете
[html]
<div id='что-то'>текст</div>
<div id='куда подгрузить содержимое'>удачно</div>
[/html]
или
[html]
<div id='что-то'>текст</div>
<div id='куда подгрузить содержимое'>неудачно</div>
[/html]
хех. странное решение.))
однако, если вы хотите получить результат - т.е. обработанное содержимое, а не текстовое, то сделайте так:


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.