我在我的网站上显示一个带有自定义数据库表的列表:
$resultats = $wpdb->get_results(
$wpdb->prepare( "SELECT photo, nom, prenom, titre_fr, departement_fr FROM {$wpdb->prefix}prfs" )
);
foreach ( $resultats as $resultatPrfs ) {}
现在,我必须使用select输入创建AJAX过滤器。从昨天开始,我一直在尝试许多解决方案,但都不管用。
目前,这里是我的功能。php文件:
function blog_scripts() {
// Register the script
wp_register_script( \'custom-script\', get_stylesheet_directory_uri(). \'/js/ajax.js\', array(\'jquery\'), false, true );
// Localize the script with new data
$script_data_array = array(
\'ajaxurl\' => admin_url( \'admin-ajax.php\' ),
\'security\' => wp_create_nonce( \'load_states\' ),
);
wp_localize_script( \'custom-script\', \'blog\', $script_data_array );
// Enqueued script with localized data.
wp_enqueue_script( \'custom-script\' );
}
add_action( \'wp_enqueue_scripts\', \'blog_scripts\' );
add_action(\'wp_ajax_get_states_by_ajax\', \'get_states_by_ajax_callback\');
add_action(\'wp_ajax_nopriv_get_states_by_ajax\', \'get_states_by_ajax_callback\');
我的AJAX:
jQuery(function($) {
$(\'#departement_select\').change(function () {
var departement = $(this).val();
console.log(departement);
if(departement != \'\') {
var data = {
\'action\': \'get_states_by_ajax\',
\'departementValue\': departement,
\'security\': blog.security
};
$.post(blog.ajaxurl, data, function(response) {
$(\'.load-state\').html(response);
console.log(response);
});
}
});
});
和我的页面:
<div class="load-state"></div>
<?php
function get_states_by_ajax_callback()
{
check_ajax_referer(\'load_states\', \'security\');
$departement = $_POST[\'departementValue\'];
var_dump($departement);
global $wpdb;
$aStates = $wpdb->get_results($wpdb->prepare("SELECT nom FROM " . $wpdb->prefix . "profs WHERE departement_fr = %d", $departement));
if ($aStates) {
echo(\'yep\');
} else {
echo(\'nope\');
}
wp_die();
}
?>
从昨天开始,我一直在四处转转,甚至在阅读了这个论坛上的许多主题之后,你会有一个解决方案吗?