通过AJAX发送链接

时间:2014-08-09 12:42:45

标签: javascript php ajax

我试图通过ajax检查数据库中的用户。成功时,它应返回一个带有用户名的链接作为链接的名称。早期没有链接部分一切正常,但现在它显示'未定义'。另外我知道我使用的是被弃用的mysql_*函数,我的代码很容易被sql注入,但我担心的是上面提到的问题。

这是通过AJAX返回的php代码。

<?php
header('Content-Type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
require_once("includes/connection.php");
echo '<response>';
$user=$_GET['user'];

if($user==""){
echo "type the username";
}
else{   
$query="SELECT email_id FROM users
    WHERE email_id='{$user}'
    ";
$user_result = mysql_query($query,$connection);
if(mysql_num_rows($user_result)>0){
echo "<a href='friend.php?friend_id=1'> {$user} </a> exists";
    }
else{
                echo "no such user as {$user} exists";
    }
}

echo '</response>';
?>

我没有包含创建xmlHTTP对象的函数,但这是其余的AJAX代码:

function start()
{

if(xmlHttp){
try{
    if(xmlHttp.readyState==0 || xmlHttp.readyState==4)
    {
        user= encodeURIComponent(document.getElementById("user_input").value);
        xmlHttp.open("GET","search.php?user="+user,true);
        xmlHttp.onreadystatechange = mainFunctionHandler;
        xmlHttp.send(null);
    }else{
        setTimeout('start()',1000);
    }
}catch(e){
    alert(e.toString());
        }
}
}

function mainFunctionHandler()
{
if(xmlHttp.readyState==4){
    if(xmlHttp.status==200){
        xmlResponse = xmlHttp.responseXML;
        xmlDocumentElement = xmlResponse.documentElement;
        message = xmlDocumentElement.firstChild.data;
        document.getElementById("divD").innerHTML=message;
        setTimeout('start()',1000);
    }else{
        alert("something went wrong");
    }
}
}

1 个答案:

答案 0 :(得分:0)

您的客户端JavaScript需要正确提取标记,并将其插入主页。

请参阅以下示例:

<!doctype html>
<html>
<body>
<input type="text" id="user_input">
<button id="submit" onclick="start()">Search for user</button>
<div id="divD">
</div>
<script>
function start()
{
xmlHttp = new XMLHttpRequest();
if(xmlHttp){
try{
    if(xmlHttp.readyState==0 || xmlHttp.readyState==4)
    {
        user= encodeURIComponent(document.getElementById("user_input").value);
        xmlHttp.open("GET","search.php?user="+user,true);
        xmlHttp.onreadystatechange = mainFunctionHandler;
        xmlHttp.send(null);
    }else{
        setTimeout('start()',1000);
    }
}catch(e){
    alert(e.toString());
        }
}
}

function mainFunctionHandler()
{
if(xmlHttp.readyState==4){
    if(xmlHttp.status==200){
        xmlResponse = xmlHttp.responseXML;
        xmlDocumentElement = xmlResponse.documentElement;
        message = xmlDocumentElement.innerHTML;
        document.getElementById("divD").innerHTML=message;
        setTimeout('start()',1000);
    }else{
        alert("something went wrong");
    }
}
}
</script>
</body>
</html>