我已经创建了一个组合ajax选择菜单,并在localhost上运行它。我只是试图将文件移动到wordpress配置中将其设置为模板,但由于.js文件调用其他文件的路径,我遇到了问题。
有没有办法可以称之为直接路径? JS看起来像这样:
$(document).ready(function(){
$("select#direction").attr("disabled","disabled");
$("select#route").change(function(){
$("select#direction").attr("disabled","disabled");
$("select#direction").html("<option>wait...</option>");
var id = $("select#route option:selected").attr('value');
$.post("select_direction.php", {id:id}, function(data){
$("select#direction").removeAttr("disabled");
$("select#direction").html(data);
});
});
});
我想从wordpress主题文件夹/ includes / select_direction.php中调用它
此JS文件也存在于includes文件夹中。
答案 0 :(得分:0)
您可以使用网站文档根目录中的路径直接到您要调用的文件。可能是这样的:
"/theme_folder/includes/select_direction.php"
任何以斜杠“/”开头的路径都将是源自文档根目录的路径。如果路径相对于您的JavaScript代码所在的页面,则可以使用点“。”来表示一个目录:
"../../theme-folder/includes/select_direction.php"
如果要从PHP脚本传递此路径,最好的选择是将路径放在HTML元素属性中:
<body data-script-path="/theme_folder/includes/select_direction.php">
然后在您的JavaScript代码中,您可以获得以下路径:
var path = $("body").data("script-path");
有很多方法可以将数据从服务器端传递到客户端,您可以使用PHP解析JavaScript - 但这是一个丑陋的解决方案。 HTML5数据属性更清晰。
答案 1 :(得分:-1)
JavaScript代码不知道它在includes文件夹中。它运行在运行页面所在的位置。
因此,您可以使用页面所在位置的任何相对路径来引用文件。