使用 Wordpress 自动完成 jQuery

2024-03-01

我想在 Wordpress 中使用 Jquery 自动完成和 ajax 调用从 json 文件中检索数据。

这是我的代码:

HTLM

<div class="form-group formComuni">
    <label for="input-button" class="sr-only">Inserisci il nome del tuo Comune</label>
    <div class="input-group inputComuni">
        <input name="search" id="comuni" class="form-control large-input align-middle" type="text" placeholder="Inserisci il nome del tuo Comune"><i class="fas fa-search fa-lg"></i>
    </div>
</div>

JSON

{"comuni":[{"datapresub":"01/02/2000","datasub":"01/02/2018","nomeComune":"ROMA","provincia":"RM"},{"nomeComune":"ROMAGNANO AL MONTE","provincia":"SA"},{"nomeComune":"ROMAGNANO SESIA","provincia":"NO"},{"nomeComune":"ROMAGNESE","provincia":"PV"},{"nomeComune":"ROMANA","provincia":"SS"},{"nomeComune":"ROMANENGO","provincia":"CR"},{"nomeComune":"ROMANO CANAVESE","provincia":"TO"},{"nomeComune":"ROMANO D'EZZELINO","provincia":"VI"},{"nomeComune":"ROMANO DI LOMBARDIA","provincia":"BG"},{"nomeComune":"ROMANS D'ISONZO","provincia":"GO"},{"nomeComune":"ROMBIOLO","provincia":"VV"},{"nomeComune":"ROMENO","provincia":"TN"},{"nomeComune":"ROMENTINO","provincia":"NO"},{"nomeComune":"ROMETTA","provincia":"ME"}]}

JS

$(function(){
    $( "#comuni" ).autocomplete({
        source: function( request, response ) {
            $.ajax({
                type: 'POST',
                url: ajaxUrl,
                data: {
                    action: "mon_action"
                },
                success: function(data) {
                response( $.map(data, function(item) {
                    return item.nomeComune;
                }));
            }
            });
        },
        minLength: 3,
    });
}

PHP

add_action( 'wp_ajax_mon_action', 'mon_action' );
add_action( 'wp_ajax_nopriv_mon_action', 'mon_action' );

function mon_action() {

    $request = wp_remote_get( "https://demo.ec2webdesign.com/anpr-dev/rom.json", array(
        'headers' => array('Content-Type' => 'application/json;')
    ) );

    if( is_wp_error( $request ) ) {
        return false;
    }
    $body = wp_remote_retrieve_body( $request );
    $data = json_decode( $body );
    echo json_encode($data->comuni);
    echo ($body);
}

我的代码有问题。我需要基于“nomeComune”的自动完成功能。

在控制台中我收到此警告:

TypeError: cannot use 'in' operator to search for "length" in "[{\"datapresub\":\"..."

任何帮助表示赞赏。

Thanks


思考一下您在这里所做的事情,它应该如何工作:

$(function(){
    $( "#comuni" ).autocomplete({
       source: function( request, response ) {
            $.ajax({
                    type: 'POST',
                    url: ajaxUrl,
                    data: {
                    action: "mon_action"
                     },
                    success: function(data) {
                    response( $.map(data, function(item) {
                        return item.nomeComune;
                     }));
                 }
               });
            },
       minLength: 3,
}

根据jQuery 文档 https://api.jqueryui.com/autocomplete/#option-source将匿名函数传递给source自动完成选项使您可以通过执行自定义请求,根据给定输入的当前值(存储在 request.term 属性中)过滤建议。
不过,您似乎只想获取 json 一次并将其用作源。
为此,您需要将对 jQuery.autocomplete 函数的调用移至“mon_action”后端 API 端点的成功回调。

 $.ajax({
         type: 'POST',
         url: ajaxUrl,
         data: {
           action: "mon_action"
          },
          success: function(data) {
              $( "#comuni" ).autocomplete({
               // TODO: parse data properly
               source: data
             })
         }
       });

幸运的是,您的代码中还有另一个错误,因为否则自动完成功能会起作用,而您不会注意到有数百个不必要的请求。
您不想直接映射数据(这是 JSON 对象,因此无法映射它),您想映射数据的“comuni”属性,这是一个数组。

$.map(data.comuni, function(item) {
     return item.nomeComune;
    })
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Wordpress 自动完成 jQuery 的相关文章

随机推荐

  • 存根和mockito中的区别

    我是mockito新手 需要知道存根和何时之间的区别 1 stub cpproxy getBinList toReturn gettestbins 2 when cpproxy getBinList thenReturn gettestbi
  • Delphi - TDictionary 线程安全吗

    我的想法是使用 TDictionary 来管理 IdTCPServer 上的客户端连接 这是一个用于理解目的的简单示例代码 未经测试 var Dic TDictionary
  • 如何使用 FFMPEG 最好地转换 Flash 兼容的 mp4 文件?

    我正在尝试将不同的文件转换为闪存兼容的文件 mp4使用 ffmpeg 文件 但我似乎无法让它工作 当然 目标是以最小的文件大小获得最好的质量 到目前为止 我已经有了这个 它可以工作 但由于某种原因它不能在 Flash 播放器中播放 结果不太
  • hdf5 和 ndarray 附加/大型数据集的省时方法

    背景 我有一个 k n 维时间序列 每个序列表示为 m x n 1 数组 其中包含浮点值 n 列加上代表日期的一列 Example k 大约 400 万 个时间序列 看起来像 20100101 0 12 0 34 0 45 20100105
  • 预期为 &-ptr,在迭代元组数组时找到元组

    我有一个数组 const adjacent i8 i8 8 1 1 1 0 1 1 1 0 1 0 1 1 1 0 1 1 该数组代表一个单元格内的所有相邻单元格ROWxCOLUMN网格 为了迭代这个数组以找到所有邻居 我这样做 for k
  • Android Studio logcat 历史记录/缓冲区大小

    有谁知道是否有办法增加 Android Studio 中 logcat 历史记录 缓冲区的大小 我记得在 Eclipse 中有一种方法可以做到这一点 并希望 Android Studio 有类似的设置 您还可以通过 IDE 按项目执行此操作
  • O(1) 时间内的链表串联

    我遇到了一个有趣的问题 我对提供给我的答案感到困惑 问题如下 The concatenation of 2 lists can be performed O 1 time Which of the following implementat
  • 我应该选择指针还是引用作为数据成员?

    这是一个简单的例子来说明这个问题 class A class B B A a a a A a class C C b a A a B b So B负责更新一部分C 我通过 lint 运行了代码 它抱怨引用成员 皮棉 1725 http gi
  • 此 font: 速记属性语法有效吗? (我对规范的阅读表明是的,但我安装的浏览器中有一半不同意。)

    这是有效的吗 font bold 10px 13px inherit 根据我读到的specs http www w3 org TR CSS2 fonts html font shorthand这应该意味着 粗体 的字体粗细 继承 的字体系列
  • 如何使用zxing条码读取应用程序实现缩放功能?

    我正在使用 zxing 条形码读取应用程序 我需要在应用程序中添加缩放功能 以便我可以从更远的距离扫描条形码 即在扫描条形码时 应该能够缩放相机预览 我怎样才能做到这一点 Thanks 变焦并没有多大帮助 因为它是数码变焦 事实上 它往往会
  • 如何增加顶点数?

    我需要一个参数化形式matplotlib path Path 所以我用了 vertices属性 它工作得很好 只是给出的点数对于我想要的用途来说太低了 这是一段代码来说明 import numpy as np from matplotlib
  • java库从文件内容查找mime类型[重复]

    这个问题在这里已经有答案了 我正在寻找一个java库 它通过查看文件内容 字节数组 来告诉你mime类型 我发现这个项目使用 jmimemagic 它不再支持较新的文件类型 例如 MS word docx 格式 因为它现在处于非活动状态 从
  • 如何在 Visual Studio 2008 中使用 Visual Studio 2010 C++ 工具?

    如果可能的话 有人知道如何在 Visual Studio 2008 中使用 Visual Studio 2010 附带的完整 c 工具集 编译器 链接器 sdk 吗 更改 选项 gt 项目和解决方案 gt VC 目录 下监听的所有目录就足够
  • 从 Django 的 RawQuerySet 获取数据库游标

    我在 Postgres 中有一个相当大的表 20M 我尝试对其进行原始 Django 查询 tweets TweetX objects raw SELECT from twitter tweet using twittertest 我很快就
  • 仅终止 SQL Server 中的用户进程

    有些用户忘记关闭使用我们的 SQL 2014 数据库的访问查询 当发生这种情况时 它会阻止他们正在访问的表在夜间重建 有什么方法可以杀死这些用户而不杀死系统进程 据我所知 系统进程不仅限于 SPID gt 50 根据杀死用户进程spid g
  • Javascript正则表达式仅适用于整数,不以0开头但允许0

    我需要一个正则表达式来验证整数 05 and 00是不允许的 但是0被允许 目前我有这个 1 9 d 但它不允许0 感谢帮助 1 9 d 0 这就是你的模式
  • 在 Android 中将 XML 转换为 JSON 对象

    我有一个 XML 字符串 如下所示
  • jquery .not() 不工作

    我试图在每个实例上发生一些事情 除了有禁用类的地方 但 not 似乎不起作用 这是我所拥有的内容的简短版本 if this not Disabled Do Something 但是 如果我反转它 即 if this is Disabled
  • gfortran 中的清零

    有没有办法强制 gfortran 中的下溢清零 我不敢相信这是第一次有人问这个问题 但我在任何地方都找不到任何相关内容 如果这是重复的 我会承担责任 您可以使用支持 Fortran 2003 IEEE 模块的最新版本的 gfortran 来
  • 使用 Wordpress 自动完成 jQuery

    我想在 Wordpress 中使用 Jquery 自动完成和 ajax 调用从 json 文件中检索数据 这是我的代码 HTLM div class form group formComuni div