要求: 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吗? 上面的要求要加上超时信息返馈给用户,请教怎么加? 能附上完整点的实例就更好了。
<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>
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。