我正在使用AJAX的基本技术,使用AJAX将表单保存到数据库中。
但是我遇到了一些麻烦。
我搜索的所有内容都是jQuery代码,但我只想用简单的AJAX来实现。
HTML表格:
<form id="submitcourse" name="submitcourse" method="get">
<p>Course Name: <input type="text" name="cvalue" id="cvalue" /></p>
<a href="#" onclick="submitformwithajax();">Successfull</a>
</form>
<span id="result">.</span>
AJAX代码:
<script type="text/javascript">
function GetXmlHttpObject()
{
if(window.XMLHttpRequest)
{
return new XMLHttpRequest();
}
if(window.ActiveXobject)
{
return new ActiveXObject("Microsoft.XMLHTTP");
}
return null;
}
function submitformwithajax()
{
var myAjaxPostrequest=new GetXmlHttpObject();
var coursename=document.submitcourse.cvalue.value;
var parameter="cvalue="+coursename;
myAjaxPostrequest.open("GET", "do.php", true)
myAjaxPostrequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
myAjaxPostrequest.send(parameter)
myAjaxPostrequest.onreadystatechange=function{
if(myAjaxPostrequest.readyState==4){
if(myAjaxPostrequest.status==200){
document.getElementById("result").innerHTML=myAjaxPostrequest.responseText;
document.getElementById("submitcourse").style.display="none";
}
else
document.getElementById("submitcourse").innerHTML="An error has occured making the request";
}
}
}
</script>
上述AJAX代码的目的是将表单详细信息发送到do.php文件,我可以在其中处理收到的数据。
do.php文件:
<?php
$course=$_REQUEST['cvalue'];
echo "dddd".$course;
?>
现在我无法获取do.php文件中的值,请帮帮我,
注意:我有使用jQuery执行此操作的代码,但我只想在此方法中执行此操作。因为它是为了教学生关于基本的AJAX。
答案 0 :(得分:6)
在你的功能定义之后,我注意到你没有()......
myAjaxPostrequest.onreadystatechange=function{
应该是
myAjaxPostrequest.onreadystatechange=function(){
请告诉我这是否有帮助!
答案 1 :(得分:1)
问题是:你把你的参数放在send()里面,这是不正确的,因为你发送GET请求,把代码更改为:
myAjaxPostrequest.open("GET", "do.php?"+parameter, true)
myAjaxPostrequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
myAjaxPostrequest.send()
使用Ajax GET,该参数应与URL混合,但是,您的代码对于POST方法是正确的。
或者如果你想使用POST
myAjaxPostrequest.open("POST", "do.php", true)
myAjaxPostrequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
myAjaxPostrequest.send(parameter)
答案 2 :(得分:0)
看看你是否无法使用getElementsByName取而代之的
var coursename=document.getElementsByName('cvalue')[0].value;