jquery高手!!怎样循环请求ajax?? 求救!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery高手!!怎样循环请求ajax?? 求救!!相关的知识,希望对你有一定的参考价值。

比如说
var a = new array(1,2,3);
for( var i = 0 ; i < a.length ; i++ )
var value = a[i];
$.getJSON( "url?value="+ value , null , function()

);

这就是我的实际需求,但value 值总是不变,因为getJSON请求还没完i就循环到头了,我知道怎么解决,困惑啊,求救!!谢谢

你这样好了,执行一次ajax,在成功返回的函数里面再进行ajax请求~
var a = new Array(1,2,3);
var i=0;
Loop_ajax(a[i],i,a);
function Loop_ajax(value,identity,array)
$.getJSON( "url?value="+ value , null , function()
if(identity<array.length)
Loop_ajax(array[identity+1],identity+1,array);

else
alert('循环玩啦');
return false;

);

---------------------------------
对于2楼的答案~
$.ajax有这个option
sucess: callback
这里就可以定义成功时的返回值。追问

你这想法很新颖啊 应该可以吧?

追答

呵呵- - 你试试就知道咯。
在回调里面去请求下一个,就能保证完整执行了吧。我以前有这样做过。希望对你有用@@

追问

呵呵 谢谢你 效果挺好的 下次还有问题我还找你啊 先谢了

参考技术A 把异步改成同步的试一试,我也没遇到这样的问题,试一试,得到答案,给个回复哦追问

同步 是不是返回jaon类型?

追答

嗯,这个无所谓啊

参考技术B async: false追问

在吗 能不能具体说说啊!! 我不是很理解,
var html = $.ajax(
url: "some.php",
async: false
).responseText; 是不是这样的啊?? 但取得的字符串是action的全部变量名和值,我怎么能得到我要的那返回值呢?

追答

$.ajax(
url:"aaa.aspx",
async:false,
success:function(msg)
var html=msg;

)

PHP循环中来自JQuery代码的AJAX请求

【中文标题】PHP循环中来自JQuery代码的AJAX请求【英文标题】:AJAX Request from JQuery Code within PHP Loop 【发布时间】:2013-11-09 01:33:24 【问题描述】:

我是一个长期的潜伏者,第一次在 Stack Overflow 上发帖(这让我在之前的很多编程项目中受益)。我有一个独特的问题,我无法通过搜索网站找到,所以我会在这里描述它。

我正在创建一个在线订单表格,用户可以在其中选择食品类别。该类别被发送到另一个代码页面,该页面在数据库上运行查询并将该类别中的所有项目返回到名为 ItemXSelect 的下拉框(其中 X 是项目编号)。我没有遇到过这个问题。但是,我无法在另一个 AJAX 查询中使用用户为 ItemXSelect 选择的值。具体来说,AJAX 请求根本不发送(根据 Firebug)。我希望它像语法错误这样简单,但我已经做了好几天了。

下面的代码是在 PHP Echo 语句中编写的 Jquery/AJAX 代码,并转义了某些字符。 $itemNum 确定 ItemXSelect 中 X 的值。

\$(\"#Item" . $itemNum . "Select option:selected\").change(function() 
var sel = \$(\"#Item" . $itemNum . "Select option:selected\").text());
    \$.ajax(
        type: \"POST\",
        url: \"sizearray.php\",
        data:  category: \"Cold_Sandwiches\" , selection: sel ,
        dataType: \"text\"
    ).done(function(result) 
        \$(\"#Item" . $itemNum . "Size\").html(result);
    ); 
    \$(\"#Item" . $itemNum . "Size\").show();
);

这几天一直困扰着我。我感谢任何可以帮助我找出问题所在(或者至少尝试)的人。

================================================ ========================================

编辑 1

感谢您的帮助,我已通过将所有 JQuery 包装在 PHP EOD 语句中来清理代码。这样,我就不必逃避整个事情了。以下是更新后的代码。下面的建议到目前为止还没有回答主要问题,但至少语法更整洁。

jQuery("#Item$itemNumSelect option:selected").change(function() 
    var sel = jQuery("#Item$itemNumSelect option:selected").text());
        jQuery.ajax(
            type: "POST",
            url: "sizearray.php",
            data:  category: "Cold_Sandwiches" , selection: sel ,
            dataType: "text"
        ).done(function(result) 
            jQuery("#Item$itemNumSize").html(result);
        ); 
        jQuery("#Item$itemNumSize").show();
    );

【问题讨论】:

你为什么要逃避这么多东西?? 您应该尝试使用PHP multiline string 来处理所有这些问题。 你能在浏览器中获取选择值的那一行设置一个断点吗?更改事件是否触发? Ixe,我实际上已经完全忘记了多行字符串,我很高兴你提出来了。我将用 EOD-ready 的东西替换我的乱七八糟的代码。我首先避免它的原因是因为我不知道你可以在其中调用 PHP 变量。我想你知道的越多。 单引号也可以避免转义(而且你不需要双引号,因为你只是在附加变量) 【参考方案1】:

所有这些台词看起来都很有趣。我不了解 PHP,但在我看来,您的引号不匹配。

\$(\"#Item" . $itemNum . "Select option:selected\").change(function() 

\$(\"#Item" . $itemNum . "Size\").html(result);

\$(\"#Item" . $itemNum . "Size\").show();

【讨论】:

它看起来如此奇怪的原因是,当您编写 PHP echo 语句时,它看起来像这样: echo "Some words and stuff" 并且要在该语句中包含引号,您需要执行此 echo “一些“单词”之类的东西”当你在 PHP 回显语句中使用 JQuery 时,我会让你想象一下,转义引号会在多大程度上混淆语法。它变得令人讨厌。【参考方案2】:

或者您可以在客户端使用 jQuery 进行实时绑定。

编辑

在您的 JavaScript 中

    $('select').change(function()
       alert(this.options[this.selectedIndex].value);
    );

HTML

<select>
   <option value="apple">Apple</option>
   <option value="orange">Orange</option>
</select>

因此,对于您添加的每个选择(通过 AJAX 动态)将自动绑定到该更改事件。

或者您可以采用更复杂但更不容易出错的方法,即只以 JSON 格式从服务器请求数据并使用数据填充控件。

【讨论】:

我尝试了你的建议jQuery("#Item$itemNumSelect").live('change',function() ,但它并没有解决我的问题。难道sel这个变量不正确? $itemNum 必须是一个固定的或静态的数字,或者您的所有选择控件必须具有一个通用属性,您可以将其用作客户端的选择器。再次检查我的帖子,我编辑了它

以上是关于jquery高手!!怎样循环请求ajax?? 求救!!的主要内容,如果未能解决你的问题,请参考以下文章

求救啊 ~怎样安装license manager?有哪位高手可以指点一下,我安装Arcgis时,到最后阶段出了问题,

带有ajax请求的jQuery .each循环

如何利用jquery ajax实现循环的ajax请求

PHP循环中来自JQuery代码的AJAX请求

jquery .getJSON 跨域请求 报 Url错误 。callback=?用与跨域的参数,急啊 高手帮忙解决一下。

求救:用鼠标在网页上滚动浏览时,页面会象水波一样晃动,该怎样解决??