向用户显示一个框。他输入一根绳子然后按OK。 他被发送到结果页面,其中有一些针对结果的异步调用php脚本。
但是,在同一页面上,还有其他字段也需要启动php请求,但是他们需要先得到第一个请求的结果。
换句话说,
页面发布了20个请求。 每当请求完成时,它需要根据第一个请求的结果再发起3个请求。
如何在不必同步执行这20个请求然后重定向到第2页的第二页的情况下执行此操作?
谢谢
答案 0 :(得分:1)
这不是可以用AJAX完成的吗?或者这是你问的问题?
答案 1 :(得分:0)
这是一个ajax教程:http://www.w3schools.com/Ajax/Default.Asp
这是一个使用AJAX的联系页面,让您了解一个真实的例子:
<script type="text/javascript">
function ajax(url)
{
var test = 0;
var name = document.getElementsByName('name')[0];
var phone = document.getElementsByName('phone')[0];
var email = document.getElementsByName('email')[0];
var msg = document.getElementsByName('msg')[0];
if(name.value == ""){ name.style.backgroundColor = "#FFFFCC"; test=1;
}else{ name.style.backgroundColor = "#FFFFFF"; }
if(email.value == ""){ email.style.backgroundColor = "#FFFFCC"; test = 1;
}else{ email.style.backgroundColor = "#FFFFFF"; }
if(msg.value == ""){ msg.style.backgroundColor = "#FFFFCC"; test = 1;
}else{ msg.style.backgroundColor = "#FFFFFF"; }
if(test == 1){
$j("#error").slideDown(600, function(){ }); //Using jQuery
return false;
}else{
document.getElementById('contactButton').value = "Sending";
$j("#error").slideUp(600, function(){ });
}
if (window.XMLHttpRequest){ // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
url = url + "?name=" + name.value;
url = url + "&phone=" + phone.value;
url = url + "&email=" + email.value;
url = url + "&msg=" + encodeURI(msg.value);
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
function stateChanged(){
if (xmlhttp.readyState==4) {
var response = xmlhttp.responseText;
if(response == "true"){
document.getElementById('contactForm').reset();
document.getElementById('contactButton').value = "Sent :)";
}else{
document.getElementById('contactButton').value = "Can't send your message now :(";
}
}
}
}
</script>
<div id="error" style="display:none; width:100%; border:1px solid #000000; background-color:#91B933; text-align:center">Please fill in all the highlighted areas.</div>
<div style="width:100%">
<div style="float:left; width:auto; position:relative; left:50%;">
<div style="float:left; position:relative; left:-50%;">
<div style="float:left; margin:20px;">
<form id="contactForm">
<table border=0 style="width:300px;">
<tr><td>Name:</td><td><input type="text" name="name"></td></tr>
<tr><td>Phone Number:</td><td><input type="text" name="phone"></td></tr>
<tr><td>Email:</td><td><input type="text" name="email"></td></tr>
<tr><td colspan=2>Message:</td></tr>
<tr><td colspan=2><textarea name="msg" style="width:95%"></textarea></td></tr>
<tr><td colspan=2 align=right><input id="contactButton" type="button" onclick="ajax('contact.php')" value="Send"></td></tr>
</table>
</form>
</div>
</div>
</div>
</div>
<div id="response" style="display:block;"></div>
XMLHttpRequest(或适合浏览器的版本)就是果汁。
因此,在用户之后,在您的示例中,输入文本并单击“提交”,而不是将其发送到另一个页面,您可以使用onclick =“”来调用javascript函数,该函数将向您的php页面发送XMLHttpRequest 。然后你可以使用xmlhttp.responseText;阅读您从PHP页面回复的响应。
如果您使用上面示例中的var response = xmlhttp.responseText;
,那么您将从一个名为response的变量中获取您的php页面的响应,您可以使用该变量将另一个XMLHttpRequest转换为另一个php页面。
有意义吗?
浏览一些Ajax教程。你会了解它。