初めてのシングル ページ アプリケーションに取り組んでいますが、ページ データを保存する最善の方法がわかりません。
ページのコンテンツがデータベースに保存されるように設定しました。ユーザーがナビゲーション リンクの 1 つをクリックすると、プロセス ファイルへの ajax 呼び出しが行われ、ページのコンテンツが抽出され、json としてフォーマットされ、エコーされます。 jQuery がページに入力できるように戻します。
私が抱えている問題は、データベース内のページ コンテンツのいずれかに PHP が含まれている場合、PHP が処理されていないか、表示されていないことです (ただし、ソースを表示すると生の php が表示されます)。コードが実行されるようにするためのより良い方法はありますか?
私の Ajax コール:
$("nav a").click(function(e) {
e.preventDefault();
var page = $(this).attr("href");
$("nav a").removeClass("menuSelected");
$(this).addClass("menuSelected");
form_data = {
action: "load",
page: page,
is_ajax: 1
}
$.ajax({
type: "post",
url: "process.php",
dataType: "json",
data: form_data,
success: function(data) {
if(data.success === "true") {
$("#asideLeft").html(data.aside_left);
$("#contentMiddle").html(data.content_middle);
$("#asideRight").html(data.aside_right);
} else {
$("#contentMiddle").html("<h1>AJAX Failure</h1>");
}
}
});
ユーザーがリンクをクリックしたときに呼び出される私の PHP コード:
if($action == "load") {
$pms->connect();
$result = $pms->dbh->prepare("SELECT * FROM pages WHERE name=:name");
$result->execute(array(':name' => $page));
$page = $result->fetch(PDO::FETCH_OBJ);
$data['success'] = "true";
$data['aside_left'] = $page->aside_left;
$data['content_middle'] = $page->content_middle;
$data['aside_right'] = $page->aside_right;
echo json_encode($data);
}
データベースに保存されている HTML/PHP のサンプル:
<h1>Content Middle</h1>
<p>Today is <?php echo date("Y-m-d H:i:s"); ?> </p>
あなたが提供できる助けや提案をありがとう。