如何在jquery ajax成功中获取多个值参数?

Posted

技术标签:

【中文标题】如何在jquery ajax成功中获取多个值参数?【英文标题】:How to get multiple value parameters in jquery ajax success? 【发布时间】:2021-12-26 14:31:30 【问题描述】:

jquery ajax 成功如何获取多个值?

我想要的目标是:

$.ajax(
....
success: function(data,myvalue2) 
  dataTable.ajax.reload(); //data in here is an array that fill datatable (JSON)
  $("#input").val(myvalue2); // myvalue2 is an id for title of page

....
);

【问题讨论】:

success -> 类型:Function( Anything data, String textStatus, jqXHR jqXHR ) - 您无法更改 success 的工作方式(被调用)。只能修改data的内容("从服务器返回的数据") 您的data 可以是数组或json,并且可以包含许多值。 你没有。 success:by jquery 调用,data 从您的服务传回。您的服务无法返回“两个结果”,那么“myvalue2”从何而来?您可以在方法的前面设置 myvalue2 并使用闭包,或者如果两者都来自服务器,则将其作为属性传递。 @KIKOSoftware "您的数据可以是数组或 json" -> "JSON (javascript Object Notation) 是一种可序列化的数据交换格式,旨在成为机器和人类可读”。为什么要列出实际的数据类型(数组)和数据格式(json)?特别是当数组必须转换为 json 才能到达客户端时。 我的数据是 json 格式。我可以在 json 模式下将 myvalue2 添加到数据中,并在成功函数中将它们分隔为 dataTable.ajax.reload() 之前的值(数据和 myvalue2)吗? 【参考方案1】:
<?php
    echo json_encode(["test1" => "value1", "test2" => "value2"]);
?>

<script>
...
success: function(data) 
    data = JSON.parse(data);
    console.log(data);
...

【讨论】:

我没明白 如 cmets 中所述,在 ajax 中,您只能将单个变量中的数据作为字符串值获取,因此解决方案是在该字符串中放置多个东西。为此,通常使用 JSON 格式。 在服务器端,您可以使用 PHP 数组以键值对的形式发送数据,在我的示例代码中,您将获得一个 JSON 对象 (w3schools.com/js/js_json_objects.asp)。 php 脚本会输出一个 json 字符串,格式如下 test1: "value1", test2: "value2" 使用 javascript,您可以读取 json 字符串并将其转换为 javascript 对象 (w3schools.com/js/js_json_parse.asp) 此函数将获取一个字符串并创建一个对象。所以,在做“data = JSON.parse(data)”之后,data 被替换为一个 js 对象。之后,你就可以随心所欲地使用data.test1和data.test2了…… 阅读更多关于 JSON ***.com/questions/4881876/…

以上是关于如何在jquery ajax成功中获取多个值参数?的主要内容,如果未能解决你的问题,请参考以下文章

jQuery ajax的traditional参数的作用

JQUERY 如何在AJAX同步获取文件导出的成功信息?

jQuery ajax 提交表单并从 datepicker、按钮获取值

jQuery $.ajax(),将成功数据传递给单独的函数

从jQuery中的多个相同的类名中获取值CSS

获取 jQuery AJAX 成功选项以返回值的基本问题