我能夠檢索通過ajax在functions.php中發送的數據。但我需要template.php中的數據(我的主題)。這是我第一次使用ajax,也許我會以錯誤的方式去做。我能夠echo $ _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是[超全局變量(http://php.net/manual/en/language.variables.superglobals.php),這意味着你可以從任何地方訪問它。沒有看到您的代碼很難提供幫助,請儘快發佈。有一個閱讀這也是,下次http://stackoverflow.com/help/how-to-ask – rjdown
同意@rjdown這是不可能的,以幫助你這個小信息。但我現在可以說的是,據我所知,你不能在你的主題文件中使用你的ajax代碼,因爲當你的ajax請求被解析時它們沒有被加載。只有'functions.php'文件被加載,你應該只有這個文件中的所有業務邏輯。 – maksbd19
從標題中刪除標記 – Rikesh