1

コードのこの部分を機能させるのに問題があります。基本的に、変数をphpページに送信するこの関数を呼び出したいです。私は変数がそこにあることをテストし、私のphpページが本来あるべき情報を受け入れていることもテストしましたが、このAjaxを機能させることはできません.

function ajaxRequest(myname) {
var AJAX = null; // Initialize the AJAX variable.
if (window.XMLHttpRequest) 
{ // Does this browser have an XMLHttpRequest object?
    AJAX=new XMLHttpRequest(); // Yes -- initialize it.
} else 
{ // No, try to initialize it IE style
    AJAX=new ActiveXObject("Microsoft.XMLHTTP"); // Wheee, ActiveX, how do we format c: again?
} // End setup Ajax.

if (AJAX==null) 
{ // If we couldn't initialize Ajax...
    alert("Your browser doesn't support AJAX."); // Sorry msg.
return false // Return false, couldn't set up ajax
}
AJAX.onreadystatechange = function() 
{ // When the browser has the request info..
    if (AJAX.readyState==4 || AJAX.readyState=="complete") 
    { // see if the complete flag is set.
        callback(AJAX.responseText, AJAX.status); // Pass the response to our processing function
    } // End Ajax readystate check.
}

alert("Alert1");
var url='http://localhost/main.php?Name=myname';    
AJAX.open("POST", url, true); // Open the url this object was set-up with.
alert("Alert2");
AJAX.send(); // Send the request.

}

これは、変数を受け入れる必要がある私のphp部分です

<?php
$var=$_GET['Name'];

echo $var;
?>
4

2 に答える 2

3

まず、リクエストを POST から GET に変更する必要があります。

AJAX.open("GET", url, true); // Open the url this object was set-up with.

また、この行を更新する必要があります

var url='http://localhost/main.php?Name=myname'; 

var url='http://localhost/main.php?Name='+myname; 

私の完全なスクリプトは次のとおりです。

<script type="text/javascript">
    function ajaxRequest(myname) {
        var AJAX = null; // Initialize the AJAX variable.
        if (window.XMLHttpRequest) 
        { // Does this browser have an XMLHttpRequest object?
            AJAX=new XMLHttpRequest(); // Yes -- initialize it.
        } else { // No, try to initialize it IE style
            AJAX=new ActiveXObject("Microsoft.XMLHTTP"); // Wheee, ActiveX, how do we format c: again?
        } // End setup Ajax.

        if (AJAX==null) 
        { // If we couldn't initialize Ajax...
            alert("Your browser doesn't support AJAX."); // Sorry msg.
            return false // Return false, couldn't set up ajax
        }

        AJAX.onreadystatechange = function() 
        { // When the browser has the request info..
            if (AJAX.readyState==4 || AJAX.readyState=="complete") 
            { // see if the complete flag is set.
                callback(AJAX.responseText, AJAX.status); // Pass the response to our processing function
            } // End Ajax readystate check.
        }

        alert("Alert1");
        var url='http://localhost/main.php?Name='+myname;    
        AJAX.open("GET", url, true); // Open the url this object was set-up with.
        alert("Alert2");
        AJAX.send(); // Send the request.
    }
</script>

コールバック関数も不足している可能性があるため、次のように追加してください

function callback(x, y) {
    alert(x);
}

そして、あなたのAJAX関数を呼び出します

ajaxRequest("ashley");

必要な main.php コードは次のとおりです (ただし、これは AJAX を使用する必要があるものではありません)

<?php 
session_start();
if(isset($_GET["Name"])) {
   $_SESSION["Name"] = $_GET["Name"];
}
if(isset($_SESSION["Name"])) {
   echo $_SESSION["Name"];
} else {
   echo "The AJAX has not been run!";
}
?>
于 2012-08-04T16:44:50.683 に答える
0

サーバーに ajax リクエストを送信するには、GET または POST の 2 つの方法があります。

1.GET メソッド:

var url='http://localhost/main.php?Name='+myname; // you can add any numner of vars here
AJAX.open("GET", url, true); 
AJAX.send();

main.php のコード

    if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
        echo $_GET['Name'];
    }

2. POST メソッド:

AJAX.open("POST","ajax_test.asp",true);
AJAX.setRequestHeader("Content-type","application/x-www-form-urlencoded");
AJAX.send("Name="+myname);

main.php のコード

if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
    echo $_POST['Name'];
}
于 2012-08-04T17:00:01.753 に答える