AJAX从后台读取数据 返回到前台的问题

问题描述

AJAX从后台读取数据返回到前台的问题必须先alert一下,才能获取数据,求帮忙!!问题描述:点击单据号,将单据号通过url,传递至详细信息展示页detail.html,detail.html页面通过这个单据号在后台数据库中查出相关数据,然后展示在页面上,但是在js代码中必须先alert一下,才能将获取的数据显示在页面中,请教各位大牛,怎么解决我猜应该是detail.html获取URL数据,然后到后台去解析,导致不同步了,但是想不到解决办法,求个问大牛帮忙!!获取URL代码:<scripttype="text/javascript">functionGetRequest(){varurl=location.search;//获取url中"?"符后的字串vartheRequest=newObject();if(url.indexOf("?")!=-1){varstr=url.substr(1);strs=str.split("&");for(vari=0;i<strs.length;i++){theRequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]);}}returntheRequest;}</script>

**********************************************向后台传输代码和返回代码<scripttype="text/javascript">$(function(){varRequest=newObject();Request=GetRequest();varurl;url=Request['vbillcode'];$.ajax({type:'POST',url:"/rm/rmcsale/edit_specapplydetail",data:{Listurl:url},async:false,success:function(data){console.log("-----------success-------------");alert("您查询的订单号为:"+data.vbillcode);$(".J-vbillcode").attr("value",data.vbillcode);$(".J-billmaker").attr("value",data.billmaker);$(".J-ctrantypeid").attr("value",data.ctrantypeid);},error:function(data){},dataType:'json',});});</script>

多谢!!

解决方案

解决方案二:
看你代码和加不加alert没大关系的,只是一个赋值操作而已,就算其他地方要使用这3个控件的值,你的ajax是同步的,只要是在这个方法调用之后也不会出问题。。$(".J-vbillcode").attr("value",data.vbillcode);$(".J-billmaker").attr("value",data.billmaker);$(".J-ctrantypeid").attr("value",data.ctrantypeid);改为val试试,有专门给输入控件赋值的方法,不要使用attr设置属性的方法$(".J-vbillcode").val(data.vbillcode);$(".J-billmaker").val(data.billmaker);$(".J-ctrantypeid").val(data.ctrantypeid);

解决方案三:
可能是因为你使用的同步请求,而请求发送到服务器到返回需要点时间,alert刚好填补了这段时间,所以你感觉alert之后才有返回。
解决方案四:
firefox,firebug直接看ajax的返回情况,首先确定firebug里看到返回数据正常但html里没有填充那3个input里再考虑把attr换成val()来整整看。
解决方案五:
引用3楼ayanamireizero的回复:

firefox,firebug直接看ajax的返回情况,首先确定firebug里看到返回数据正常但html里没有填充那3个input里再考虑把attr换成val()来整整看。

我用firebug断点以后也能显示,说明应该是执行时间的问题有什么解决办法没延迟页面加载
解决方案六:
引用4楼skyxuyan的回复:

Quote: 引用3楼ayanamireizero的回复:
firefox,firebug直接看ajax的返回情况,首先确定firebug里看到返回数据正常但html里没有填充那3个input里再考虑把attr换成val()来整整看。

我用firebug断点以后也能显示,说明应该是执行时间的问题有什么解决办法没延迟页面加载

应该是后台没有执行完前台就显示了,有没有什么办法延迟前台压面显示呢
解决方案七:
引用5楼skyxuyan的回复:

Quote: 引用4楼skyxuyan的回复:
Quote: 引用3楼ayanamireizero的回复:
firefox,firebug直接看ajax的返回情况,首先确定firebug里看到返回数据正常但html里没有填充那3个input里再考虑把attr换成val()来整整看。

我用firebug断点以后也能显示,说明应该是执行时间的问题有什么解决办法没延迟页面加载

应该是后台没有执行完前台就显示了,有没有什么办法延迟前台压面显示呢

延迟显示这是CS的思路success是执行完毕后的回调函数,后台一般不存在没有执行完毕个人推测LZ的页面还有其它加载数据并且处理时间比较长(用firebug自行查看),在执行success方法时页面还没加载完毕,你可以换成面向过程的思路
解决方案八:
url:"/rm/rmcsale/edit_specapplydetail",这里直接return个简单的数据,或者换其他浏览器试下?我写了个简单的例子,测了没问题啊
解决方案九:
$.ajax({type:'POST',url:"/rm/rmcsale/edit_specapplydetail",data:{Listurl:url},async:false,success:function(data){console.log("-----------success-------------");alert("您查询的订单号为:"+data.vbillcode);$(".J-vbillcode").attr("value",data.vbillcode);$(".J-billmaker").attr("value",data.billmaker);$(".J-ctrantypeid").attr("value",data.ctrantypeid);},error:function(data){},dataType:'json',});

试一试吧这段封装成一个函数然后你在声明的下发调用这个函数来实现你的操作。
解决方案十:
ajax状态改为同步jQuery.ajaxSetup({async:false});
解决方案十一:
改成异步请求
解决方案十二:
有时异步需要alert才能出数据,而同步alert没意义.

时间: 2024-08-22 18:30:06

AJAX从后台读取数据 返回到前台的问题的相关文章

AJAX从后台读取数据 返回到前台的问题 必须先alert 一下,才能获取数据 ,求帮忙!!

问题描述 AJAX从后台读取数据返回到前台的问题必须先alert一下,才能获取数据,求帮忙!!问题描述:点击单据号,将单据号通过url,传递至详细信息展示页detail.html,detail.html页面通过这个单据号在后台数据库中查出相关数据,然后展示在页面上,但是在js代码中必须先alert一下,才能将获取的数据显示在页面中,请教各位大牛,怎么解决我猜应该是detail.html获取URL数据,然后到后台去解析,导致不同步了,但是想不到解决办法,求个问大牛帮忙!!获取URL代码:<scri

做了一个ajax在后台查数据, 前台接收转成html赋值给div显示在界面上,返回的数据是对的,赋值过后div值也是对的,显示出来是错的

问题描述 做了一个ajax传文件的,在后台上传成功后,查询数据库的最新数据返回,前台接收转成html赋值给div显示在界面上,div显示的内容是和数据库一样的,在做删除操作完毕后,查询数据返回到前台,返回值是对的,调试时看到给div赋值后div的值也是对的,界面上会显示正确的值后继续运行就跳到别的js里面了,这个时候界面上显示的值就是错的了,代码应该是在赋值操作完毕后就结束整个查询动作,但是不知道什么原因又开始执行别的代码块,对于同步异步这个概念不是很清晰,是不是界面还没来的及显示出来就被别的动

java问题关于ajax的异步请求前台页面的值传到后台然后再返回到前台

问题描述 java问题关于ajax的异步请求前台页面的值传到后台然后再返回到前台 前台页面上有个select框 select框中的值是从后台获取的 然后任意选中select框下面的值,让这个值传到后台作为参数 String sql="select phone deviceinfo where vehiclenumber='+select选中的值+'" 然后把查询到的phone在传到另外一个sql=select top 1 data from phone(作为表明) 关键是那个selec

ajax获取后台json数据

问题描述 ajax获取后台json数据 后台代码如下: protected void Page_Load(object sender EventArgs e) { if (!IsPostBack) { tuxing(); } } public string tuxing() { DataTable dt = new Eastea.BusLogic.GraphicalGet().Getgraphical(); StringBuilder JsonString = new StringBuilder

jquery ajax-使用jquery.ajax向后台接收数据

问题描述 使用jquery.ajax向后台接收数据 发送数据是直接用 来发送. ashx中返回了context.Response.ContentType = "text/plain"; context.Response.Write(result); 其中result是StringBuilder. 我想在该页面,用jquery.ajax接收数据, $.ajax({ type: 'get', url: 'test.ashx', dataType: "text", suc

json-input如何通过ajax获取后台的数据

问题描述 input如何通过ajax获取后台的数据 后台sql查询的数据,怎么通过ajax传到前台的input $(function() { $.ajax({ type : 'post', url : 'xxx.action', dataType : 'json', data : { 'Id' : $('#Id').val() }, success : function(data) { if(data != null && data.length > 0){ } }, error :

Ajax初试之读取数据篇实现代码_AJAX相关

是的,今天我们要实现的效果是.在不刷新网页的情况下读取并显示服务端的数据. 拿出来我们上次准备好的东西. 1:XMLHTTPRequest对象的函数. 2:Asp输出xml格式的文件.你可以点击查看该文件内容 复制代码 代码如下: <% '出自:http://Www.Web666.Net '作者:康董 '如需转载请务必保留以上信息 '定义一个变量,来保存xml数据 dim xml xml = "<?xml version='1.0' encoding='gb2312'?><

ajax-使用ztree从后台读取数据的问题

问题描述 使用ztree从后台读取数据的问题 最近由于项目需求改变之后,boss说要在ztree树上实时获取数据的更新,然后我就用了AJAX获取数据,但是在ajax的success方法里面,从后台获取的数据已经接收到了,但是就在我赋值的时候却报了个js错误,说是无法获取未定义或者为null对象的lastindexof. 我想问问是什么原因.图在下面. 感激不尽. 解决方案 解决了吗,源码发出来帮你调试调试

Ajax初试之读取数据篇

拿出来我们上次准备好的东西.1:XMLHTTPRequest对象的函数.2:Asp输出xml格式的文件.你可以点击查看该文件内容:Asp输出xml格式的数据 打开以后你会发现我们使用Asp技术动态的输出一个xml格式的数据.如果你对该技术还不了解,请返回阅读:ajax开始准备篇 在这个输出的数据里面有一个msg标签.标签里包含了一段文字内容.今天我们就读取这个msg标签.并将文字内容显示到你的网页上. 先看下面的代码.并附上效果演示 web_ajax.asp 复制代码 代码如下: <?xml v