1
J'ai essayé sans succès d'ajouter une saisie semi-automatique dans mon wordpress.Wordpress et jquery autocomplete meta touches
Dans mon functions.php:
// Loads files with autocomplete
wp_register_script('jquery-ui', get_template_directory_uri() . '/js/jquery-ui.min.js', array('jquery'));
wp_enqueue_script('jquery-ui');
wp_register_style('jquery-style', get_template_directory_uri() . '/js/jquery-ui.css');
wp_enqueue_style('jquery-style');
wp_register_script('autocomplete-ui', get_template_directory_uri() . '/js/autocomplete.js', array('jquery'));
wp_localize_script('autocomplete-ui', 'autocomplete-object', array('url' => admin_url('admin-ajax.php')));
wp_enqueue_script('autocomplete-ui');
Dans mes autocomplete.js
function ($) {
'use strict';
$(function() {
$("#busca").autocomplete({
source: function(request, response) {
$.ajax({
type: 'GET',
dataType: "json",
data: {
action: "autocompleteCallback",
term: request.term
},
success: function (data) {
}, }); } }); }); }(jQuery);
Retour à mon functions.php:
function acCallback() {
global $wpdb;
$search = $_REQUEST['term'];
$query = $wpdb->get_results("SELECT $wpdb->postmeta.meta_value FROM $wpdb->postmeta WHERE postmeta.meta_value LIKE \'' . $search . '%\' AND post_type = \'NAME OF CUSTOM POST TITLE \'
AND $wpdb->postmeta.meta_key = 'produto'");
$tab = array();
foreach ($query->posts as $p):
$tab[] =array('value'=>$p->postmeta.meta_value);
endforeach;
echo(json_encode($tab));
exit;
}
add_action('wp_ajax_autocompleteCallback', 'acCallback');
add_action('wp_ajax_nopriv_autocompleteCallback', 'acCallback');
Rien n'apparaît dans mon autocomplete ... Quelle est mon erreur? Merci pour toute aide
Où est l'URL AJAX? Je suppose que vous devez dire à AJAX quoi appeler. –
Ok. Je l'ai fait, mais ne fonctionne toujours pas: – Tatiana
$ ("#busca") .autocomplete ({ \t source: fonction (demande, réponse) { \t .ajax $ ({ \t \t url: autocomplete-object.ajax_url, – Tatiana