ユーザーがクリックした場所を検出する必要があります。AJAXコンテンツは、挿入先のソースページに応じて異なる方法で表示する必要があるためです。
about.phpに入る場合はデータのみである必要がありますが、about-main.phpに入る場合は中央の列全体である必要があるため、データのヘッダー/フッターラッパーが必要です。
AJAXを介して呼び出されたhtmlは、このコードを使用して誰が質問しているかを確認し、HTML応答を適切にフォーマットするphpページに保持されます。
$array[] = "/cf/about.php";
$array[] = "/cf/about/about-main.php";
$array[] = "/cf/about/other-page.php";
$ispage = "";
foreach ($array as $value) {
if ($_SERVER['HTTP_REFERER'] != $value) {
$ispage = "";
} else {
$ispage = "woot";
}
}
if ($ispage == "woot") {
echo $content;
} else {
include_once 'about-header.php';
echo $content;
include_once 'about-footer.php';
}
問題は...HTTP_REFERERは少しヒットしてミスしているようです。ネットワークで作業している間は問題なく動作しますが、自宅のコンピューターで試してみましたが、明らかに完全に機能していません。結果はひどいものです:o
これを達成する別の方法はありますか?セッション変数を使用できると思いますが、それについてはあまり経験がありません。
ありとあらゆるヒント/ヒントをいただければ幸いです;)ありがとうございます!
編集:
このページは実際にはスタッフのプロフィールページです。通常の場所はabout.phpで、2列目のdivにはサムネイルのグリッドが表示され、クリックすると、AJAXを介してその場所にプロファイルが読み込まれます。すべて素晴らしくシンプルです-戻るボタンは写真のグリッドをリロードします。
問題は、各スタッフにも静的ページが必要なことです。これらはabout/staff-name.phpで作成しました。内容は同じですが。サーバーがabout/staff-name.phpに直接アクセスしたかどうかをサーバーに検出させ、アクセスした場合は、ヘッダー/フッターをラップします。
リクエストが写真のグリッド(つまりAJAX)からのものである場合、ヘッダー/フッターラッパーは必要ありません。
それは明らかですか?:o
1)AJAXリクエストの場合-ラッパーなし2)AJAXリクエストでない場合-ヘッダー/フッターラッパーを追加