php返回整个html文件而不是字符串(ajax)
我正在一个使用AJAX的网站上工作,我已经陷入了死胡同。我的javascript有一个名为validate的函数,它从“name”和“password”字段中提取并发送到php,等待响应php返回整个html文件而不是字符串(ajax),php,javascript,html,ajax,Php,Javascript,Html,Ajax,我正在一个使用AJAX的网站上工作,我已经陷入了死胡同。我的javascript有一个名为validate的函数,它从“name”和“password”字段中提取并发送到php,等待响应 function Validate() { var xmlhttp; if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest()
function Validate() {
var xmlhttp;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else {// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
if (xmlhttp.responseText.value == 'Invalid'){
$("#box").effect('shake',150);
document.getElementById("validationText").innerHTML = xmlhttp.responseText;
}
else if (xmlhttp.reponseText.value == 'Success!'){
console.log(xmlhttp.responseText.value)
document.getElementById("validationText").innerHTML = xmlhttp.responseText;
}
}
}
var name = document.getElementById("name").value;
var password = document.getElementById("password").value;
var arg = "JqueryPhp.php?name=" + name + "&password=" + password;
xmlhttp.open("GET", arg, true);
xmlhttp.send();
}
php文件应根据情况返回“Success!”或“Invalid”
<?php
$con = mysql_connect("localhost","root","root");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("collegedatabase", $con);
$getUserName = $_GET["name"];
$getPassword = $_GET["password"];
$result = mysql_query("SELECT * FROM `admin`");
$Success = false;
/* if the user entered does not exist, run the function which shakes the screen and add a bit of text to say that the username is invalid */
while ($row = mysql_fetch_array($result)){
if ($row['userName'] == $getUserName && $row['password'] == $getPassword){
echo "Success!";
$Success = true;
break;
}
}
if($Success === false) {
echo ('Invalid');
}
?>
相反,它返回一个完整的html文件,字符串位于body标记内。我从firebug记录的响应如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
Invalid</body>
</html>
无标题文件
无效的
退出代码>在PHP代码的末尾
您可能在最后运行了一些东西,导致整个html页面呈现。我建议您使用Jquery函数$.POST
$.post("URL.php",{
//Params(post)
},
function(data){
//Answer (data)
})
你能给我们看一下php文件吗?如果看不到生成输出的代码,我们真的帮不上忙。只是不要通过模板对其进行回显,然后在其上放置一个json头并对其进行解析。我会改为Jquery.ajax并指定datatype:text,或者更好地仍然使用json。这里只是对你的php代码的一个建议。在where子句中输入用户名和密码作为条件,而不是在admin
的所有行中循环。并用于检查是否有匹配项<代码>echo(mysql\u num\u行($result)==0)?“无效”:“成功!”代码>jQuery来自哪里?这是jquery的本机函数,来自jquery库,非常容易使用。响应可能是json或STRING在阅读您的回答时,我查看了php文件,结果发现我在php周围有html,这就是正在生成的html。(默认情况下添加到dreamweaver中生成的php文件中)现在,fireBug返回预期的“Invalid”或“Success!”,这是完美的,但javascript中的if语句没有接收到它。尽管如此,您还是解决了原来的问题,谢谢:)