Wordpress和jquery自动完成元键
我一直试图在我的wordpress中添加自动完成功能,但没有成功 在myfunctions.php中:Wordpress和jquery自动完成元键,jquery,wordpress,autocomplete,key,meta,Jquery,Wordpress,Autocomplete,Key,Meta,我一直试图在我的wordpress中添加自动完成功能,但没有成功 在myfunctions.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( 'j
// 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');
在我的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);
....
success: function (data) {
response($.map(data, function(item) {
return {
value: item.meta_value,
id :item.meta_id
};
}));
};
回到my 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' );
global $wpdb;
$search = $_GET['term'];
$query = $wpdb->get_results( "SELECT DISTINCT meta_id, meta_value FROM wp_postmeta WHERE meta_key='NAME OF META KEY' AND meta_value LIKE '".$search."%' " );
$suggestions = array();
foreach($query as $row) {
array_push($suggestions, array(
'meta_value' => $row->meta_value,
'meta_id' => $row->meta_id
)
);
}
echo json_encode( $suggestions );
exit();
我的自动完成中没有显示任何内容。。。我犯了什么错?谢谢你的帮助,我明白了!我不得不做一些改变,但主要是: 在我的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);
....
success: function (data) {
response($.map(data, function(item) {
return {
value: item.meta_value,
id :item.meta_id
};
}));
};
在my 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' );
global $wpdb;
$search = $_GET['term'];
$query = $wpdb->get_results( "SELECT DISTINCT meta_id, meta_value FROM wp_postmeta WHERE meta_key='NAME OF META KEY' AND meta_value LIKE '".$search."%' " );
$suggestions = array();
foreach($query as $row) {
array_push($suggestions, array(
'meta_value' => $row->meta_value,
'meta_id' => $row->meta_id
)
);
}
echo json_encode( $suggestions );
exit();
我明白了!我不得不做一些改变,但主要是: 在我的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);
....
success: function (data) {
response($.map(data, function(item) {
return {
value: item.meta_value,
id :item.meta_id
};
}));
};
在my 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' );
global $wpdb;
$search = $_GET['term'];
$query = $wpdb->get_results( "SELECT DISTINCT meta_id, meta_value FROM wp_postmeta WHERE meta_key='NAME OF META KEY' AND meta_value LIKE '".$search."%' " );
$suggestions = array();
foreach($query as $row) {
array_push($suggestions, array(
'meta_value' => $row->meta_value,
'meta_id' => $row->meta_id
)
);
}
echo json_encode( $suggestions );
exit();
AJAX URL在哪里?我想你需要告诉阿贾克斯该叫什么。我做到了,但仍然不起作用:$(“#busca”).autocomplete({source:function(request,response){$.ajax({url:autocomplete object.ajax\u url,ajax url在哪里?我想你需要告诉ajax调用什么。好的。我做到了,但仍然不起作用:$(“#busca”).autocomplete({source:function(request,response){.ajax)({url:autocomplete-object.ajax\u url,