我买了一本书,开始学习如何使用AJAX,有人给了我一个练习作业,我必须在一个div中输入值,然后对她给我的网站执行AJAX get请求,以便在右边的div中接收信息。也许我正在按照本书的说法错误地执行AJAX get请求。如果有人能指出我正确的方向,我会很感激。这不适合学校,我没有网络脚本语言的经验,但愿意学习。只需给我的javascript看看,也许你可以帮助我。我不确定如何在收到信息后显示信息,但我知道在点击提交按钮时我不想加载另一个页面!
此外,我有一种奇怪的方法可以将我的代码排列在C ++编程中大约4年。我已经开发了它,如果很难理解,那就很抱歉。如果是这样,那么我可以格式化它并重新发布。另外,我试图学习如何使用AJAX GET方法,而不是POST方法。我想以JSON格式返回信息。
<html>
<head>
<style type="text/css">
#header {
text-align: left;
}
#wrapper {
margin:bottom;
width:100%;
}
#sub-left {
float:left;
width:225px;
height:215px;
border:1px solid black;
position: relative;
text-align: left;
}
#sub-right {
padding-left: 52px;
float:left;
width:60%;
height:45%;
border:1px solid black;
position: relative;
text-align: left;
}
#sub-leftmost {
float:left;
width:10%;
height:100%;
position: relative;
text-align: left;
}
</style>
<script type=”text/javascript”>
// function create GetXmlHttpObject
function GetXmlHttpObject(){
if (window.XMLHttpRequest){
// code for IE7+, Firefox, Chrome, Opera, Safari
return new XMLHttpRequest();
}
if (window.ActiveXObject){
// code for IE6, IE5
return new ActiveXObject(“Microsoft.XMLHTTP”);
}
return null;
}
function submitFormWithAjax(){
var myAjaxGetrequest = new GetXmlHttpObject();
var t2lName=document.testForm.namebox.value;
var t2lEmail=document.testForm.ebox.value;
var t2lAddress=document.testForm.addbox.value;
var t2lPhone=document.testForm.phnbox.value;
var parameters = "name=" + encodeURIComponent(t2lName)
+ "&email=" +encodeURIComponent(t2lEmail)
+ "&address=" + encodeURIComponent(t2lAddress)
+ "&phone=" +encodeURIComponent(t2lPhone);
myAjaxGetrequest.open("GET", "websitetosendandgetfrom.com" + parameters, true);
myAjaxGetrequest.send( );
if (myAjaxGetrequest.readyState==4){
if(myAjaxGetrequest.status==200 || window.location.href.indexOf("http")==-1){
document.getElementById("result").innerHTML=myAjaxGetrequest.responseText
document.getElementById(“testForm”).style.display = “none”;
}
else {
document.getElementById(“testForm”).innerHTML=”An error has occured making the request”;
}
}
}
}
</script>
</head>
<body>
<div id="wrapper">
<div id="sub-leftmost">
</div>
</div>
<div id="wrapper">
<div id="header"><h1>Quiz</h1></div>
<div id="sub-left">
<form name = 'testForm'>
<FONT COLOR="CC3300",font size="5"> <b>User Info</b></FONT>
<br />
Full Name: <br /><center><input type="text" size="25" id = "namebox" /></center>
Email Address: <br /><center><input type="text" size="25" id = "ebox" /></center>
Address: <br /><center><input type="text" size="25" id = "addbox" /></center>
Phone Number: <br /><center><input type="text" size="25" id = "phnbox" />
<a href=”#” onclick=”submitFormWithAjax();”>Finished!</a>
</form>
</div>
</div>
<div id="wrapper">
<div id="sub-right">
</div>
</div>
</body>
</html>
答案 0 :(得分:1)
请求是异步的,只会在状态发生变化时调用回调函数。
基本上,依赖于请求状态更改的所有代码都需要包含在AJAX请求的回调中:
myAjaxGetrequest.send();
myAjaxGetrequest.onreadystatechange = function() {
if (myAjaxGetrequest.readyState==4){
...