开发者社区> 问答> 正文

求教jquery ajax逐条处理数据怎么写?



要求: 1.点击查询按钮后,$.ajax使用post向mysql.php发送请求数据,并将文本框设置为不可更改,button不能再点击

2.mysql.php返回一组json格式的数据,例如:["aaa","bbb","ccc"]

3.然后将这组逐条$.ajax使用post发送到demo.php,如data:{'chaxun':'aaa'}

4.只有当前一条complete完成后,才执行下一条data:{'chaxun':'bbb'}

5.当所有数据执行完后,释放对文本框和button的控制

另:jquery中用$.ajax有个timeout的超时参数,请教超时信息如何返馈给用户的?是通过error参数的function吗? 上面的要求要加上超时信息返馈给用户,请教怎么加? 能附上完整点的实例就更好了。

展开
收起
a123456678 2016-07-06 16:04:17 2554 0
1 条回答
写回答
取消 提交回答
  • <input type="text" name="chaxun" id="chaxun">
    <button id="button" onclick="search()">查询</button>
     
    <script src="jquery.js"></script>
    <script>
        var dataCount = 0;
        function search()
        {
            dataCount = 0;
            $('#chaxun').attr('readonly', 'readonly');
            $('#button').attr('disabled', 'disabled');
            ajax(
                'post', 'mysql.php', null,
                 function(response) {
                    if (response.lenth > 0) {
                        dataCount = response.length;
                        for (var index in response) {
                            completeData({chaxun: response[index]});
                        }
                    }
                     
                    if (dataCount == 0) {
                        $('#chaxun').removeAttr('readonly');
                        $('#button').removeAttr('disabled');                    
                    }
                     
                 }, error
            );
        }
         
        function completeData(data)
        {
            ajax(
                'post', 'demo.php', data,
                 function(response) {
                    if (dataCount > 0) {
                        dataCount--;
                    }
                }, error 
            );
        }
         
        function error(response)
        {
            if (response.status == 503) {
                alert('服务器超时,请稍后重试。');
            }
        }
         
        function ajax(type, url, data, cbfOk, cbfError)
        {
            $.ajax({
                type: type,
                url: url,
                async: false,
                data: data,
                dataType: 'json',
                success: function(response)
                {
                    if (typeof cbfOK == 'function') {
                        return cbfOk(response);
                    }               
                    return true;
                },
                error:function(response)
                {
                    if (typeof cbfError == 'function') {
                        return cbfError(response);
                    }
                    return false;
                }
            });     
        }
    </script>
    2019-07-17 19:52:14
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Javascript中的函数 立即下载
JavaScript函数 立即下载
现代Javascript高级教程 立即下载