首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用以下代码在wordpress ajax.php上将函数()中的数组返回到javascript:

如何使用以下代码在wordpress ajax.php上将函数()中的数组返回到javascript:
EN

Stack Overflow用户
提问于 2020-11-09 13:57:01
回答 2查看 2.7K关注 0票数 0

听起来很蠢,但我在里面呆了一个星期,帮帮我.

xhr dev-tools chrome中的“响应”不会离开"0",它永远不会返回我需要的数组.

从wordpress获取数据的Javascript代码

代码语言:javascript
运行
AI代码解释
复制
$(document).on("click", "[data-show-home-list-series]", function () {
                var id = $(this).attr("data-show-home-list-series");
                $("[data-show-home-list-series]").removeClass("active");
                $(this).addClass("active");
                var $list = $("#homeSliderSerieList");
                $.post("wp-admin/admin-ajax.php", { getHomeSliderSeries: id }, function (html) {
                    var data = jQuery.parseJSON(html);
                    if (data.status == "success") {
                        var listing = data.list;
                        var lister = [];
                        for (var i = 0; i < 20; i++) {
                            var row = listing[i];
                            lister.push(seriePoster(row.url, row.rating, row.poster, row.title, row.cat, row.episode));
                        }
                        $list.parent(".itemsList").addClass("fadingOut");
                        setTimeout(function () {
                            $list.html(lister.join(""));
                            $list.trigger("destroy.owl.carousel");
                            createItemSlider();
                            $list.parent(".itemsList").removeClass("fadingOut");
                        }, 200);
                    } else {
                        return false;
                    }
                });
            });

将数组json中的数据返回到javascript中的PHP文件在html.中显示结果。

wp-admin/admin-ajax.php (admin/inc/core/ajax.php)

代码语言:javascript
运行
AI代码解释
复制
function getHomeSliderSeries(){
// i Want see that bellow in xhr response to javascript:    
//{"status":"success","list":{}}

}

add_action( 'wp_ajax_getHomeSliderSeries', 'getHomeSliderSeries' );
add_action( 'wp_ajax_nopriv_getHomeSliderSeries', 'getHomeSliderSeries' );

我的语言不是很好,希望你能坚持,谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-10 02:12:17

在functions.php中尝试ajax回调函数

代码语言:javascript
运行
AI代码解释
复制
function swt_ajax_data() {
  $id = isset($_POST['id']) ? $_POST['id'] : '';

  // Create an associative array for the response.
  $responsedata = array(
   'id'       => $id,
  ); 
  $result = array();
  
  // if need featch the data from the template un comment the bellow five lines and commented the sixth line
  //ob_start();
  //include('templatepatj');
  //$opr_html .= ob_get_contents();
  //ob_get_clean();
  // $result['data'] = $opr_html;


  $result['data'] = $responsedata;// POST array data.
  }
  return wp_send_json_success($result);
  }
}

add_action('wp_ajax_swt_ajax_data', 'swt_ajax_data');
add_action('wp_ajax_nopriv_swt_ajax_data', 'swt_ajax_data');

本地化脚本并传递admin url

代码语言:javascript
运行
AI代码解释
复制
// Register the script
  wp_register_script( 'ajax-script', 'path/to/myscript.js' );
   // Localize the script with new data
   $js_array = array(
   'ajaxurl' => admin_url('admin-ajax.php'),
);
wp_localize_script( 'ajax-script', 'swtobj', $js_array );
// Enqueued script with localized data.
wp_enqueue_script( 'ajax-script' );

试试Js吧,如下所示。

代码语言:javascript
运行
AI代码解释
复制
$(document).on("click", "[data-show-home-list-series]", function () {
  var id = $(this).attr("data-show-home-list-series");
  $("[data-show-home-list-series]").removeClass("active");
  $(this).addClass("active");
  var $list = $("#homeSliderSerieList");

  var data = {
  'action': 'swt_ajax_data', 'id': id
  };
  $.ajax({
    url: swtobj.ajaxurl,
    type: 'POST',
    data: data,
    cache: false,
    dataType: 'json',
    success: function (response, textStatus, jqXHR) {
      var response_data = response.data.data;
      if (response_data != "" || response_data.length != 0) {
        console.log(response_data);
        // write your code here
      } else {
        // write your code here
      }
    },
  });
});
票数 1
EN

Stack Overflow用户

发布于 2020-11-10 01:15:31

您在$.post中发送的数据缺少一个action属性。这个属性负责告诉admin-ajax.php应该调用哪个函数,该函数是用wp_ajax_{function_name}钩子注册的。

action属性中的值应该与要正确调用的wp_ajax_{function_name}wp_ajax_nopriv_{function_name}中的function_name匹配。

action属性与要发送到后端的其他属性组合起来,以传递需要发送的数据。

代码语言:javascript
运行
AI代码解释
复制
// Set the action and get the id.
var action = 'getHomeSliderSeries';
var id = $(this).attr("data-show-home-list-series");

// Create object to send data to backend.
// This must include an action property with 
// the name of the function on the backend.
var postData = {
  action: action,
  id: id,
  example: 'Send any data as a property. You can also nest objects and arrays.'
};

$.post("wp-admin/admin-ajax.php", postData, function(response) {
  if (response.status == "success") {
    console.log(response);
  }
}, 'json'); // Expect JSON from the backend. Now you don't need to parse.

现在,在服务器端应该调用您的getHomeSliderSeries。所有其他属性(包括操作)现在都可以通过全局$_POST变量及其相应的键进行访问。

对于响应,创建一个与要返回的数据相关联的数组。这相当于JavaScript中的一个对象。将数组编码为JSON并将其发回。现在,前端应该将对象视为响应。

代码语言:javascript
运行
AI代码解释
复制
function getHomeSliderSeries(){
  // Get the id from the post request.
  $id = isset($_POST['id']) ? $_POST['id'] : null;
  $example_string = isset($_POST['example_string']) ? $_POST['example_string'] : null;

  // Create an associative array for the response.
  $response = array(
    'status'   => 'success',
    'id'       => $id,
    'example'  => $example_string
  );

  // Return the array as a JSON string.
  return json_encode($response);

  // Cuts connection by stopping the function.
  die(); 
}

add_action( 'wp_ajax_getHomeSliderSeries', 'getHomeSliderSeries' );
add_action( 'wp_ajax_nopriv_getHomeSliderSeries', 'getHomeSliderSeries' );
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64759831

复制
相关文章
Grammarly For Chrome扩展任意用户劫持漏洞分析
01 — 综述 2018年02月02日,Grammarly官方更新了Grammarly for Chrome 14.826.1446版本,其中修复了一个严重漏洞,在此之前的版本中此扩展能够向所有网站曝
xfkxfk
2018/03/29
1.4K0
Grammarly For Chrome扩展任意用户劫持漏洞分析
salt扩展与python脚本
来源 SALTSTACK技术入门与实战 1.扩展grains 通过Python脚本定义grains http://www.xiaomastack.com/2014/10/31/saltstack-grains/ file_roots:   base:     - /srv/salt/ /srv/salt/_grains/example.py #!/usr/bin/python def grains(): local={} test={'key': 'vaule','key1': 'vaule1','k
py3study
2020/01/09
1.2K0
Chrome扩展开发
注:content_scripts段中的代码会在页面加载对应阶段"document_start", “document_end”, or "document_idle"自动注入 但是脚本运行在与页面独立的上下文中,无法访问到原页面的脚本上下文资源 如需访问原页面脚本上下文,可在content_scripts脚本中将web_accessible_resources段中声明的脚本注入到document中 样例: js/content-script.js
路过君
2020/06/19
9370
chrome扩展推荐-Tampermonkey
  得益于Google的品牌力量和技术实力,chrome浏览器近年来的市场占有率不断上升。reizhi也是chrome的爱好者之一,从最原始的IE,到假死王maxthon,再到轻快的opera,最后让我留恋chrome的理由还是强大的可扩展性。虽然资源占用永远都是抛不开的弱点,但无与伦比的速度和极致的可扩展性是有目共睹的。
reizhi
2022/09/26
9940
chrome扩展推荐-Tampermonkey
认识Chrome扩展插件
1、前言 现如今的时代,绝大多数人都要跟浏览器打交道的,说到浏览器那肯定是Chrome浏览器一家独大,具体数据请看👇 知名流量监测机构 Statcounter 公布了 7 月份全球桌面浏览器市场份额,主要数据如下: 浏览器 市场份额 月涨跌份额 Chrome 66.19% -0.74% Edge 10.84% +0.2% Safari 8.94% +0.01% Firefox 8.08% +0.28% Opera 3.06% +0.08% IE 0.75% 浏览器扩展插件的用途 生产力工具(和浏览器进
甜点cc
2022/09/26
1.2K0
编写Chrome扩展程序
Chrome的扩展程序很多,也很容易入门,可以来简单实现一下 看看 官方文档 或者翻译的文档:百度、360,慢慢就能实现出一个扩展程序来 每个扩展程序应用一般会包含: 一个manifest清单文件 h
书童小二
2018/09/03
9200
编写Chrome扩展程序
能安装Chrome扩展和油猴脚本的手机浏览器
之前分享过很多Chrome扩展的文章,不过都是电脑端的,今天分享几个手机上能安装扩展和油猴脚本的浏览器。
苏生不惑
2021/04/22
7.2K0
能安装Chrome扩展和油猴脚本的手机浏览器
chrome调试JavaScript脚本
随着 JavaScript 应用的复杂性逐渐提高,开发者需要有力的调试工具来帮助他们快速发现问题的原因,并且能高效地修复它。Chrome DevTools 提供了一系列实用的工具使得调试 JavaScript 应用不再是一件痛苦的事。
空空云
2018/09/27
1.9K0
chrome调试JavaScript脚本
Chrome扩展开发入门
近几年,随着 IE 浏览器的落幕,Chrome(包括使用Chrome内核的浏览器)其实质上已经垄断整个浏览器行业了,就连微软的 Edge 都用上了 Chrome 内核。 可以说,Chrome 的标准,事实上就可以看做是行业标准了。可以预见,Chrome 的发展前景将会非常广阔。
epoos
2022/09/19
4.1K0
Chrome扩展开发入门
chrome无法从该网站添加应用、扩展程序和用户脚本_谷歌浏览器该插件不受支持怎么解决
今天将谷歌浏览器升级到了最新的版本,在安装拓展应用的时候,却发现无法添加应用、拓展程序和用户脚本,让我很是郁闷,现整理解决方法如下:
全栈程序员站长
2022/11/08
3.5K0
使用typescript开发chrome扩展
ianzhi
2023/10/19
7620
使用typescript开发chrome扩展
Chrome扩展程序导出备份与本地导入浏览器
现在即使在国内下载个chrome,转个插件也千难万难。现在科学上网也越来越难,由于众所周知的原因,连qiang这个话题都是敏感词。哀默于心死,还是回避这个话题
周陆军博客
2023/04/09
1.8K0
那些实用的 Chrome 扩展神器
之前已经写过不少Chrome扩展那些我常用的 Chrome 扩展,这里继续推荐那些实用Chrome扩展 ,所谓实用就是能解决实际问题。
数据森麟
2019/12/31
1.2K0
那些实用的 Chrome 扩展神器
Chrome扩展开发入门体验
****前言**** Chrome浏览器扩展开发算是相当简单的,基本只要掌握HTML+CSS+Javascript,即可快速开发一个属于你的Chrome插件! ---- ****Chrome扩展基本目录结构**** manifest.json 这是一个配置文件,里面记录了扩展的使用范围、作者、版本、其余需要加载的文件等内容; icon.png 这个一看便知,就是扩展的图标~~~ popup.html 点击扩展图标,弹出的面板页面(如果在manifest.json中配置了default
AlicFeng
2018/06/08
1.1K0
chrome扩展应用开发快速科普
本文通过对chrome插件的各个部分进行快速的介绍,从而让大家了解插件各个部分的关系,并且知道如何将其进行组装成一个完整的chrome插件。
黄Java
2018/09/18
1K0
chrome扩展应用开发快速科普
Chrome迅雷下载支持扩展1.1
喜欢chrome浏览器又经常使用迅雷下载东西的朋友注意了,chrome迅雷下载扩展已经发布了。再也不用复制到IE打开或者使用IE tab了。
reizhi
2022/09/26
9620
Chrome迅雷下载支持扩展1.1
从零实现的Chrome扩展
Chrome扩展是一种可以在Chrome浏览器中添加新功能和修改浏览器行为的软件程序,例如我们常用的TamperMonkey、Proxy SwitchyOmega、AdGuard等等,这些拓展都是可以通过WebExtensions API来修改、增强浏览器的能力,用来提供一些浏览器本体没有的功能,从而实现一些有趣的事情。
WindRunnerMax
2023/07/24
6020
【前端工具】Chrome 扩展程序的开发与发布 -- 手把手教你开发扩展程序
关于 chrome 扩展的文章,很久之前也写过一篇。清除页面广告?身为前端,自己做一款简易的chrome扩展吧。 本篇文章重在分享一些制作扩展的过程中比较重要的知识及难点。 什么是 chrome 扩展
Sb_Coco
2018/05/28
1.5K0
点击加载更多

相似问题

Chrome扩展与GA脚本对话?

10

google chrome扩展用户脚本图标

11

Chrome扩展内容脚本与答案匹配

11

Chrome扩展中的背景脚本与内容脚本

24

Chrome扩展:扩展不起作用-内容脚本与后台脚本通信

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档