次の Ajax 呼び出しがあります。
function loadFPFeed(catid)
{
var dataStream = 'catid=' + Number(catid);
var failMsg = 'Sorry, but there was a problem retrieving the news feed. Please try again later.';
$.ajax({
type: 'POST',
url: "ajax/load-sp-feed.php",
data: dataStream,
cache: false
}).done(function( res ) {
if(res != false)
{
$('#ppContent').html(res);
$('#ppContentCover').fadeOut(200, function() { $(this).remove(); });
}
else
{
$('#ppContentCover').html('<div id="failMsg">' + failMsg + '</div>');
}
}).fail(function( res ) {
$('#ppContentCover').html('<div id="failMsg">' + failMsg + '</div>');
});
}
これは、ページ内のニュースフィードを取得するために使用される PHP ファイルを呼び出します。
<?php
$catid = intval($_POST['catid']);
require_once '../classes/Element.php';
$obj = new Element();
$obj->spNewsFeed($catid);
?>
私がやりたいことは、すべての Ajax 呼び出しを独自のフォルダーに入れることです。ただし、相対 URL を実行すると、常に壊れます。問題は、PHP クラス ('Element.php') への相対パスが、Ajax ファイルまたは Ajax 呼び出しを行うページのいずれかで常に無効になることです。これは、両方のファイルが異なるディレクトリにあるためです。
今のところ、Ajax 呼び出しを、呼び出しを行っているページと同じディレクトリに配置するだけで解決しましたが、整理されていないので気に入りません。すべての必要なクラス呼び出しを絶対 URL に変更するだけで済みますが、実稼働サーバーにアップロードするときにすべてを変更する必要があります。
利用可能なアイデアやベストプラクティスはありますか? それとも、単純に Ajax ファイルをページ ファイルと同じフォルダーに配置する必要がありますか?