【发布时间】:2015-04-25 21:24:30
【问题描述】:
我能够在functions.php 中检索通过ajax 发送的数据。但我需要 template.php 中的数据(我的主题)。这是我第一次使用 ajax,也许我用错了方法。我可以回显 $_POST['myvar'];在functions.php中(我将在重新开始工作后发布代码)。假设设置正确,我可以访问 functions.php 之外的 ajax 数据吗?顺便说一句,我也是在 Stack 上注册的,所以如果没有遵循某些程序,我深表歉意。
已编辑
谢谢大家 - 这是一个示例代码。在我的 js 文件中:
$(window).load(function(){
$("#cat").on("click",function() {
var selectedCat = $(this).children("option").filter(":selected").text();
$.get('../../../../../../wp-admin/admin-ajax.php', {
action: "parent_cat_send",
parent_cat: selectedCat
});
});
});
在functions.php中我有:
add_action('wp_ajax_parent_cat_send', 'current_par_cat');
add_action('wp_ajax_nopriv_parent_cat_send', 'current_par_cat');
function current_par_cat() {
global $parent_cat;
$parent_cat = $_GET['parent_cat'];
echo $parent_cat;
wp_die();
}
响应具有 $parent_cat 值。我想在functions.php之外使用$parent_cat,即在template.php中。到目前为止,我已经尝试使用全局变量创建一个函数:
function set_global_var($new_value)
{
global $my_global_var;
$my_global_var = $new_value;
}
并在 ajax 函数中调用它:
set_global_var($parent_cat);
为了进一步解释我的目标,我试图从下拉列表中获取选定的值。该值是 wp_dropdown_categories 生成的父类别名称。得到它之后,我想然后得到那个父类别的子类别。我想到了 Ajax(我以前从未使用过),因为我想要两个下拉选项 - 一个带有父类别,另一个带有由所选父类别生成的子类别(可能不刷新页面) .谢谢。
【问题讨论】:
-
$_POST 是superglobal,这意味着您可以从任何地方访问它。没有看到您的代码很难提供帮助,请尽快发布。也读一读,下次stackoverflow.com/help/how-to-ask
-
同意@rjdown 无法为您提供这些小信息。但我现在可以说的是,据我所知,你不能在你的主题文件中使用你的 ajax 代码,因为当你的 ajax 请求被解析时它们没有被加载。仅加载了
functions.php文件,并且您应该只在此文件中包含所有业务逻辑。 -
从标题中删除标签
-
你只是想使用两个脚本之间的帖子吗?
-
谢谢大家。 maksbd19 这是有道理的。我已经编辑了我的问题以显示我正在尝试做的事情。有什么想法吗?