0

这里我有两个字段:名称和密码。我一直在尝试使用 XMLHttpRequest 回显该值,但是当我单击提交时,它只显示名称而不是密码。请帮我找出我哪里出错了。

------------Index.html--------------

<html>
<head>
<title>Fist Ajax Application</title>
<script type="text/javascript">
function test(){
var xmlhttp;
    if(window.XMLHttpRequest){
        xmlhttp = new XMLHttpRequest();     
    }else{      
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }

var uname = document.getElementById('username').value;
var upassword = document.getElementById('userpassword').value;

    xmlhttp.onreadystatechange = function(){
        if(xmlhttp.readyState==4){
            document.getElementById('results').innerHTML = xmlhttp.responseText;    
        }

    }
url = "testform.php?name="+uname+"&password="+upassword;
xmlhttp.open("GET",url,true);
xmlhttp.send(); 
}
</script>
</head>

<body>
<table border="1">
  <tr>
    <td>Name:</td>
    <td><input type="text" name="name" id="username" /></td>
  </tr>
  <tr>
    <td>Password</td>
    <td><input type="text" name="password" id="userpassword" /></td>
  </tr>
</table>
<input type="button" value="suubmit" onClick="test()" />
<p><div id="results"> Results...</div></p>



</body>
</html>

-----------------Testform.php---------------

<?php

$name = $_GET['name'];
$password = $GET['password'];

echo $password."<br />";
echo $name."<br />";


?>
4

2 回答 2

0

使用$password = $_GET['password'];而不是$password = $GET['password'];

于 2013-05-19T11:26:40.183 回答
0

两个问题,

第一:您要求 DOM 在页面尚未完成加载时获取元素。

第二:正如之前的用户指出的那样。这个$GET['password']; 语法无效:

现在,将您的更改Ajax为:

<body>
<table border="1">
  <tr>
    <td>Name:</td>
    <td><input type="text" name="name" id="username" /></td>
  </tr>
  <tr>
    <td>Password</td>
    <td><input type="text" name="password" id="userpassword" /></td>
  </tr>
</table>
<input type="button" value="suubmit" onClick="test()" />
<p><div id="results"> Results...</div></p>

<script type="text/javascript">
function test(){
var xmlhttp;
    if(window.XMLHttpRequest){
        xmlhttp = new XMLHttpRequest();     
    }else{      
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }

var uname = document.getElementById('username').value;
var upassword = document.getElementById('userpassword').value;

    xmlhttp.onreadystatechange = function(){
        if(xmlhttp.readyState==4){
            document.getElementById('results').innerHTML = xmlhttp.responseText;    
        }

    }

xmlhttp.open("GET","testform.php?name="+uname+"&password="+upassword, true);
xmlhttp.send(); 
}

console.log(test())
</script>

而且,你的PHP文件,

<?php
if(isset($_GET)): 
$name = $_GET['name'];
$password = $_GET['password'];

echo $password."<br />";
echo $name."<br />";


endif;

?>
于 2013-05-19T15:02:25.493 回答