0

我想使用 Ajax 搜索登录,所以我不必刷新页面并使用 jquery 事件这里是代码,但它不起作用:(

 $(document).ready(function(){
    $("#login").keyup(submitForm);

 });
function submitForm()
{
var xhr= new XMLHttpRequest();
xhr.onreadystatechange=function()
{

    if (xhr.readyState==4 && xhr.status==200)
    {
        document.getElementById("zone").innerHTML=xhr.responseText;
    }
}
    var str="SearchLogin.php?login="+document.getElementById("login").value;

xhr.open("GET",str,true);
xhr.send();
}

欣赏它

4

2 回答 2

1

我会改用 jquery $.ajax 函数:

function submitForm(){
    $.ajax({
        method: 'GET',
        url: 'SearchLogin.php',
        data: {
            login: $('#login').val()
        }
    }).done(function(response){
        $('#zone').html(response);
    });
}

console.log(response)您可以在 .done 函数中使用 with firebug 检查输出。Firebug 也被证明是有用的,因为您可以使用控制台查看它是否找到该页面、是否发布成功、是否发送回数据等。只需单击请求,您就可以查看所有详细信息。我建议通过在服务器端脚本上回显“Hello World”来测试它,以查看连接是否正常。

于 2012-11-16T16:56:51.390 回答
1

你有一个非常奇怪的 jQuery 和 JavaScript 组合。如果您使用的是 jQuery,那么坚持使用它会更容易。有一个 jQuery AJAX 函数,它可能比使用 JavaScript 函数更容易。请参阅此处的文档:http: //api.jquery.com/jQuery.ajax/

如果我将您的代码放入 jQuery 函数而不是使用 JavaScript AJAX:

function submitForm()
{
    $.ajax({
      url: "SearchLogin.php?login="+$('#login').attr('value'),
    }).done(function(response) { 
      $('#zone').innerHTML = response;
    });
}

这是否有助于澄清一些事情?

于 2012-11-16T16:48:47.840 回答