jquery如何获取ajax中data的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery如何获取ajax中data的值相关的知识,希望对你有一定的参考价值。

js源代码:
function digg(id, flag)
$.ajax(
type: "post",
url: "/Service/ChangLog.asmx/GetChangDigg",
data:
id: id,
flag: flag,
n: new Date()
,
error: function ()
return false;
,
success: function (data)
if (flag == "true")
$("#yes[name='3']").html(data);
else
$("#no").html(data);


);
;
html源代码:
<span id="yes" type="yes" name="3">0</span>

这句$("#yes[name='3']").html(data);
可以实现改变id=“yes”并且name=“3”这个标签的值
现在想实现改变<span id="yes" type="yes" name="<%=id%>">0</span>
这个标签的值,js中的$("#yes[name='3']").html(data);的3换成data里的id
如何写?
$("#yes[name=id]").html(data);或$("#yes[name=‘“id”’]").html(data);这样都是错的。id是data:
id: id,
flag: flag,
n: new Date()
,
这个代码里的。请高手帮忙,谢谢。

$.post、$.get是一些简单的方法,如果要处理复杂的逻辑,还是需要用到jQuery.ajax()  。

$.ajax的一般格式  

$.ajax(  

     type: 'POST',  

     url: url ,  

     data: data ,

    dataType:dataType ,  

     success: success , 

     error: error   

);  

扩展资料

$.ajax的参数描述  

参数 描述  

url 必需。规定把请求发送到哪个 URL。  

data    可选。映射或字符串值。规定连同请求发送到服务器的数据。  

success(data, textStatus, jqXHR)    可选。请求成功时执行的回调函数。  

dataType      

可选。规定预期的服务器响应的数据类型。  

默认执行智能判断(xml、json、script 或 html)。  

$.ajax需要注意的一些地方:  

1、data主要方式有三种,html拼接的,json数组,form表单经serialize()序列化的;通过dataType指定,不指定智能判断。  

2、$.ajax只提交form以文本方式,如果异步提交包含<file>上传是传过不过去,需要使用jquery.form.js的$.ajaxSubmit  

  

参考技术A data.XXX
data 点 返回的数据
比如返回一个变量 val
就是data.val
如果是数组的话 data.val[i]追问

其实js代码里id是可以直接用的,所以我改成$("#yes[name=id]").html(data);结果错误。
改成$("#yes[name=data.val[0]]").html(data);这样也是错误的。

追答

大哥val是我假设的......你还真实在 我又看不见你后台代码

追问

呵呵,相关代码我不是都贴出来了了吗?请看js代码中data里的flag在 if (flag == "true") 中有直接用,但是$("#yes[name=id]").html(data);这样用是错误的,同理你那个也是错误的。

追答

success : function(data)
//o_zmc,o_clmc,o_task,o_seq,o_ruledate
$.each(data.list,function(i,v)
var $div = $("#"+v[0]);
date = v[4];
goSpan($div,v[3],v[1],v[2],v[5]);
);
$("#date").val(date);
//alert("规则日期:"+date);

这是我上个项目的代码 自己看吧
我后台是java的返回一个List类型的变量list
前台直接data.list就是了
$.each用来遍历

追问

这个代码我读懂也还是用不上啊,还是非常感谢!

追答

你没设置dataType 最好指定一下
你后台返回什么东西

######################################################

dataType
预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如XML MIME类型就被识别为XML。在1.4中,JSON就会生成一个javascript对象,而script则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调函数。可用值:

$.ajax()函数依赖服务器提供的信息来处理返回的数据。如果服务器报告说返回的数据是XML,那么返回的结果就可以用普通的XML方法或者jQuery的选择器来遍历。如果见得到其他类型,比如HTML,则数据就以文本形式来对待。

通过dataType选项还可以指定其他不同数据处理方式。除了单纯的XML,还可以指定 html、json、jsonp、script或者text。

其中,text和xml类型返回的数据不会经过处理。数据仅仅简单的将XMLHttpRequest的responseText或responseHTML属性传递给success回调函数,

注意,我们必须确保网页服务器报告的MIME类型与我们选择的dataType所匹配。比如说,XML的话,服务器端就必须声明 text/xml 或者 application/xml 来获得一致的结果。

如果指定为html类型,任何内嵌的JavaScript都会在HTML作为一个字符串返回之前执行。类似的,指定script类型的话,也会先执行服务器端生成JavaScript,然后再把脚本作为一个文本数据返回。

如果指定为json类型,则会把获取到的数据作为一个JavaScript对象来解析,并且把构建好的对象作为结果返回。为了实现这个目的,他首先尝试使用JSON.parse()。如果浏览器不支持,则使用一个函数来构建。JSON数据是一种能很方便通过JavaScript解析的结构化数据。如果获取的数据文件存放在远程服务器上(域名不同,也就是跨域获取数据),则需要使用jsonp类型。使用这种类型的话,会创建一个查询字符串参数 callback=? ,这个参数会加在请求的URL后面。服务器端应当在JSON数据前加上回调函数名,以便完成一个有效的JSONP请求。如果要指定回调函数的参数名来取代默认的callback,可以通过设置$.ajax()的jsonp参数。

追问

我只想知道问题补充中怎么写$("#yes[name=id]").html(data);这句话才能编译正确。谢谢

追答

$("#yes[name=“+data.id+”]").html(data);
你得让我知道你返回的什么 返回的什么类型才好判断啊

追问

不对哦,和返回什么没有关系啊

追答

$("#yes[name=‘“+id+”’]").html(data);
行了 阿门 没看见补充 俩data搞错了
+附近的双引号旁边还有个单引号
这个id不是data里的id 是函数参数的id
应该可以

追问

呵呵,你就是高手啊,太感谢了!

本回答被提问者采纳
参考技术B 分给我 我帮你追问

怎么弄啊?直接写出来啊。

参考技术C eval(data)就可以了
给个例子:
var username="niudun";
var password="123";
params="username="+username+"&password="+password;
后台取得:
String username=request.getParameter("username");
String password=request.getParameter("password");追问

谢谢你的回答,但我的问题问的比较具体,希望能有具体的回答,这样的答案对我没有帮助。

jQuery:从json响应中获取订单ID [重复]

【中文标题】jQuery:从json响应中获取订单ID [重复]【英文标题】:jQuery: get order id from json response [duplicate] 【发布时间】:2018-08-27 17:48:20 【问题描述】:

我想获取 json 响应的值。我写了一个Ajax函数如下:

$.ajax(
    url: '/v1/shopify-Ajax/ajax.php',
    method: 'post',
    data: datalog: dataLog, variant: $('#prod').val()
    )
    .success(function(response)
    //window.location.href = "/v1/thank-you.php";
)

我从服务器端脚本得到响应如下:

"order":
    "id":303657910281,
     "email":"test20@code1.com",
     "closed_at":null,
     "created_at":"2018-03-19T01:04:58-07:00",
     "updated_at":"2018-03-19T01:04:58-07:00",
     "number":811,
     "note":null,
     "token":"9709d7c295ac1dbbaf29c2d09a9d5a9d",
     "gateway":"",
     "test":false,
     "total_price":"82.49",
     "subtotal_price":"82.49",
     "total_weight":null,
     "total_tax":"0.00",
     "taxes_included":false,
     "currency":"USD",
     "financial_status":"paid",
     "confirmed":true,          
     "total_discounts":"0.00",
     "total_line_items_price":"82.49","cart_token":null,"buyer_accepts_marketing":false,"name":"#1811","referring_site":null,"landing_site":null,"cancelled_at":null,"cancel_reason":null,"total_price_usd":"82.49","checkout_token":null,"reference":null,"user_id":null,"location_id":null,"source_identifier":null,"source_url":null,"processed_at":"2018-03-19T01:04:58-07:00","device_id":null,"phone":null,"customer_locale":null,"app_id":2306584,"browser_ip":null,"landing_site_ref":null,"order_number":1811,"discount_codes":[],"note_attributes":[],"payment_gateway_names":[""],"processing_method":"","checkout_id":null,"source_name":"2306584","fulfillment_status":null,"tax_lines":[],"tags":"","contact_email":"test20@code1.com","order_status_url":"https:\/\/checkout.shopify.com\/19258983\/orders\/9709d7c295ac1dbbaf29c2d09a9d5a9d\/authenticate?key=0XXX","line_items":["id":610330640393,"variant_id":2323256639497,"title":"XX","quantity":1,"price":"82.49","sku":"","variant_title":"3 XX","vendor":"X1","fulfillment_service":"manual","product_id":235965415433,"requires_shipping":false,"taxable":false,"gift_card":false,"pre_tax_price":"82.49","name":"XXXX","variant_inventory_management":null,"properties":[],"product_exists":true,"fulfillable_quantity":1,"grams":0,"total_discount":"0.00","fulfillment_status":null,"tax_lines":[]],"shipping_lines":[],"billing_address":"first_name":"","address1":"","phone":null,"city":"","zip":"","province":"","country":null,"last_name":"","address2":null,"company":null,"latitude":null,"longitude":null,"name":"","country_code":null,"province_code":null,"shipping_address":"first_name":"test","address1":"6116 Beverly Dr","phone":null,"city":"Adair","zip":"50002","province":"Iowa","country":"United States","last_name":"tes","address2":null,"company":null,"latitude":null,"longitude":null,"name":"test tes","country_code":"US","province_code":"IA","fulfillments":[],"refunds":[],"customer":"id":324158947337,"email":"test20@code1.com","accepts_marketing":false,"created_at":"2018-03-19T01:04:58-07:00","updated_at":"2018-03-19T01:04:58-07:00","first_name":"test","last_name":"tes","orders_count":1,"state":"disabled","total_spent":"0.00","last_order_id":303657910281,"note":null,"verified_email":true,"multipass_identifier":null,"tax_exempt":false,"phone":null,"tags":"","last_order_name":"#1811","default_address":"id":371809157129,"customer_id":324158947337,"first_name":"test","last_name":"tes","company":null,"address1":"6116 Beverly Dr","address2":null,"city":"Adair","province":"Iowa","country":"United States","zip":"50002","phone":null,"name":"test tes","province_code":"IA","country_code":"US","country_name":"United States","default":true

我的问题是,如何直接访问订单 ID(无循环)并检查订单 ID 是否为空或空白。

【问题讨论】:

response.order.id ? 我试过了 - response.order.id var obj = JSON.parse(response); console.log(obj.order.id) 可能是字符串?然后,(JSON.parse(response)).order.id 【参考方案1】:

如果response是字符串,可能需要解析,否则可以直接读取值。

如果console.log 显示一个您可以展开的对象(在开发者工具控制台中),只需使用

var id = response.order.id;

如果这不起作用,或者你确定它是一个字符串使用

var responseObj = JSON.parse(response);
var id = responseObj.order.id;

【讨论】:

@Jamiec- 是的!我使用了 var responseObj = JSON.parse(response);而且效果很好。【参考方案2】:

在您的 AJAX 成功中,您需要解码 JSON。

var data = $.parseJSON(response);
alert(data.order.id); //you will get order id

【讨论】:

【参考方案3】:

你需要确保response在做response.order.id之前被解析成一个对象

提及

dataType : "json"

$.ajax(
    url: '/v1/shopify-Ajax/ajax.php',
    dataType : "json",
    method: 'post',
    data: datalog: dataLog, variant: $('#prod').val()
    )
    .success( function(response) console.log( response.order.id ) )
    //window.location.href = "/v1/thank-you.php";
)

【讨论】:

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

如何使用 php 使用 jquery 和 ajax 获取 textarea 的值?

jquery ajax 方法中传递的data参数,如何在java类中获取

用jquery如何获取到指定的值?

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

Ajax获取到后台json数据,然后怎么取其中name的值赋值给li标签里面

jquery中获取ajax返回数据的方法