Ajax,PHP。如何使用_GET或其他任何方式向其他文件发送多个变量?

时间:2016-03-06 11:22:17

标签: ajax

我试图通过获取包含xlm格式的php文件发送两个变量

function process(){

if (xmlHttp){
    try{
     email = encodeURIComponent(document.getElementById("email").value);
     if (email=="") {email="empty email"};
     xmlHttp.open("GET", "user_check.php?email=" + email, true);

    username = encodeURIComponent(document.getElementById("username").value);
    if (username=="") {username="empty username"};
    xmlHttp.open("GET", "user_check.php?username=" + username, true);

php文件看起来像

echo '<response>';
    echo '<username>';
         $username = ( isset($_GET['username']) ? $_GET['username'] : "something empty");
            echo $username;

    echo '</username>';

    echo '<email>';
        $email = ( isset($_GET['email']) ? $_GET['email'] : "something empty");
        echo $email;

    echo '</email>';

echo '</response>';

当我回显这些变量时,它只显示一个,实际上它只发送用户名,该用户名是发送的列表中的第二个(从上到下)。我如何发送两个或更多的变量

function handleResponse(){
     message_email = xmlHttp.responseXML.documentElement.getElementsByTagName("email").item(0).firstChild.data;
    next_email = document.getElementById("next_email");
    next_email.innerHTML =message_email;

 message_username = xmlHttp.responseXML.documentElement.getElementsByTagName("username").item(0).firstChild.data;
    next_username = document.getElementById("next_username");
    next_username.innerHTML =message_username;
}

这是

的输出

电子邮件:空的东西

用户名:&#34;来自输入&#34;

的值

我希望电子邮件从其输入中获得价值。

我希望我明白我的问题。

1 个答案:

答案 0 :(得分:0)

据我所知,你必须将两个变量放在一个请求中,因为现在,你只发送了两个请求,只读了第二个请求。

要在一个GET请求中发送两个变量,请使用以下内容:

http://example.com/response.php?var1=foo&var2=bar

导致PHP:

$_GET['var1'] = "foo";
$_GET['var2'] = "bar";

所以你的AJAX代码应该是这样的:

email = encodeURIComponent(document.getElementById("email").value);
if (email=="") {
 email="empty email"
};

username = encodeURIComponent(document.getElementById("username").value);
if (username=="") {
 username="empty username"
};

xmlHttp.open("GET", "user_check.php?email=" + email + "&username=" + username, true);

重要的是,GET变量的顺序并不重要 - 您可以先放置电子邮件或用户名,它们都会加载到$ _GET []数组中。