Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress和jquery自动完成元键_Jquery_Wordpress_Autocomplete_Key_Meta - Fatal编程技术网

Wordpress和jquery自动完成元键

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

我一直试图在我的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( '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,