使用AJAX将数据保存到mysql时遇到麻烦

时间:2013-03-20 12:18:44

标签: php mysql ajax

我正在使用AJAX的基本技术,使用AJAX将表单保存到数据库中。

但是我遇到了一些麻烦。

我搜索的所有内容都是jQuery代码,但我只想用简单的AJAX来实现。

HTML表格:

<form id="submitcourse" name="submitcourse" method="get">
<p>Course Name: &nbsp;&nbsp;&nbsp;&nbsp;<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。

3 个答案:

答案 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;