自动完成/自动建议未显示jQuery下拉菜单

时间:2012-10-25 作者:Jerry Tunin

我已将一个字段设置为“自动完成/自动建议”,但键入时未显示下拉列表。我可以看到管理ajax。php请求和Chrome Developer Tools的Network选项卡中返回的数据,似乎可以很好地检索建议。我真的不知道如何进一步排除故障,并解决问题。

Javascript如下所示:

    <script type="text/javascript">
    var se_ajax_url = \'<?php echo admin_url(\'admin-ajax.php\'); ?>\';

    jQuery(document).ready(function() {
        console.log(jQuery(\'#body-type\').suggest(se_ajax_url + \'?action=se_lookup\'));
    });
    </script>
下面是我添加到wordpress的代码:

<?php

add_action(\'wp_enqueue_scripts\', \'se_wp_enqueue_scripts\');
function se_wp_enqueue_scripts() {
wp_enqueue_script(\'suggest\');
}

add_action(\'wp_head\', \'se_wp_head\');
function se_wp_head() {
?>
<script type="text/javascript">
    var se_ajax_url = \'<?php echo admin_url(\'admin-ajax.php\'); ?>\';

    jQuery(document).ready(function() {
        console.log(jQuery(\'#body-type\').suggest(se_ajax_url + \'?action=se_lookup\'));
    });
</script>
<?php
}

add_action(\'wp_ajax_se_lookup\', \'se_lookup\');
add_action(\'wp_ajax_nopriv_se_lookup\', \'se_lookup\');

function se_lookup() {
    global $wpdb;

    $search = like_escape($_REQUEST[\'q\']);

    $query = \'SELECT DISTINCT meta_value FROM \'.$wpdb->postmeta.\'
        WHERE meta_value LIKE \\\'\'.$search.\'%\\\'
        AND meta_key = \\\'machinery_bodyType\\\'
        LIMIT 5\';

    foreach ($wpdb->get_results($query) as $row) {
        $value = $row->meta_value;
        echo $value."\\n";
    }
    die();
}

?>

1 个回复
最合适的回答,由SO网友:Eric Holmes 整理而成

我会使用.ajax() 而不是.suggest() 在jQuery中。

jQuery.ajax({
    type : "post",
    url : myAjax.ajaxurl,
    data : {
        action: \'se_lookup\',
    },
    success: function( result ) {
        console.log(result);
    }
});
现在,您应该可以从SQL返回这些值。

结束

相关推荐

如何将jQuery脚本添加到一个页面?

将单个脚本应用于特定页面的最佳实践是什么?当我尝试应用整个页面的脚本时,它与其他插件有问题。有经验法则吗? <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js\"></script> <script> (function() { $(\'html\').addClass(\'js\'); &#x