0

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について学生に教えるためのものです。

4

3 に答える 3

6

すぐに、関数定義の後に () がないことに気付きました...

myAjaxPostrequest.onreadystatechange=function{

する必要があります

myAjaxPostrequest.onreadystatechange=function(){

これが役立つかどうか教えてください!

于 2013-03-20T12:26:22.147 に答える
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)
于 2013-03-20T12:43:09.697 に答える
0

代わりに getElementsByName を使用しても問題が解決しないかどうかを確認してください

var coursename=document.getElementsByName('cvalue')[0].value;
于 2013-03-20T12:28:24.610 に答える