Когда я вызываю ajax через некоторые функции поиска или фильтрации, которые я написал, полный список неправильно возвращается без фильтров. До сих пор я смог изолировать, чтобы найти, что данные в вызове ajax не достигают переменной PHP $ _GET. Ниже Jquery сбора данных для и создания вызова AJAX, который работает сначала на странице загрузки и когда пользователь выполняет поиск или фильтры:
jQuery(function($) {
var attempt = 1;
var scholarship_search;
var \t scholarship_region;
var \t scholarship_state;
var queryData;
var load_posts = function(queryData) {
$.ajax({
type : 'GET', //'POST'
url : '/wp-content/themes/campuspride2015/lib/scholarship-db.php',
data : queryData,
dataType : 'html',
success : function(data, s, o) {
$('#scholarship-results-container').append(data);
console.log(attempt +' : '+ s +' : '+ queryData);
attempt ++;
}
});
}
/**
* ajax call from search
**/
$('#scholarship-search-form').on('submit', function(e) {
e.preventDefault(); // disable the normal click
// gather the query data
sch_search = $('#scholarship-search').val(); //coming from an input field
queryData = {
scholarship_search_submit : true,
scholarship_search : sch_search
};
load_posts(queryData); // ajax page load
});
$('#scholarship-filter-form').on('submit', function(e) {
e.preventDefault(); // disable the normal click
// gather the query data
sch_filter_region = $('#scholarship_region').val(); // select drop down
sch_filter_state = $('#scholarship_state').val(); // select drop down
queryData = {
scholarship_filter_submit : true,
scholarship_region : sch_filter_region
scholarship_state : sch_filter_state
};
load_posts(queryData); // ajax page load
});
load_posts(queryData);
});
И следующие является PHP-скрипт, который должен захватить запрос и возвращает данные страницы, но по какой-то причине ajax $ .get(); не достигает php $ _GET.
// WP access
define('WP_USE_THEMES', false);
require_once('../../../../wp-load.php');
// Variables that dictate the results to be shown
$search_submit = (isset($_GET['scholarship_search_submit']) ? $_GET['scholarship_search_submit'] : 0);
$filter_submit = (isset($_GET['scholarship_filter_submit']) ? $_GET['scholarship_filter_submit'] : 0);
/**
* Query for Scholarships
**/
/** Check for search parameters **/
if($search_submit) {
// run query (which is not running...)
}
/** query based on filters **/
elseif($filter_submit) {
// run query (which is also not running...)
}
/** Initial page viewing, show all **/
else {
// this is running, because the $_GET variable is not being populated
} ?>
Любые идеи?
UPDATE 2/25/16
Понял решена, ребята. переменную queryData
необходимо разбить на пары key.value для отправки и получения. то есть «данные: {academy_search: queryData.value} и т. д.
Спасибо за ваш вклад, каждый.
сделать запрос при загрузке страницы, но 'queryData' не определена в этой точке ... последняя строка Дж.С.' load_posts (queryData); ' – charlietfl
справа. Это точно моя проблема. : -/ – brnatermedia
хорошо, что вы ожидаете от этого? Либо установите значения по умолчанию в javascript или php, если $ _GET пуст ... 'if (empty ($ _ GET)) {loadDefaults();}' – charlietfl