ajax jquery返回整个页面

时间:2015-08-17 09:40:33

标签: php jquery ajax return-value

之前已经问过这个问题,但答案似乎对我不起作用。当我执行自动完成搜索时,我的Ajax会返回整个页面

从数据库中搜索ajax

$(function(){ $(".search_keyword").keyup(function() { 
var search_keyword_value = $(this).val();
var dataString = 'search_keyword='+ search_keyword_value;
if(search_keyword_value!='')
{
    $.ajax({
        type: "POST",
        url: "/ajax/search.php",
        data: dataString,
        cache: false,
        success: function(html)
            {
                $("#result").html(html).show();
            }
    });
} else{
    document.getElementById('result').innerHTML ='';
}
return false;    });

html page

<form method="get" action="/?page=results" class="navbar-form" autocomplete="off">
        <input type="text" name="query" class="search_keyword"/>
        <button type="submit" nam>Search</button>
    </form>
    <div id="result"></div>

非常感谢帮助伙伴

2 个答案:

答案 0 :(得分:0)

检查您正在呼叫的网页是否正确...

由于仅404错误,它将返回整页。可能是找不到的ajax网址

答案 1 :(得分:0)

ajax中使用的url应该仅用于返回(echo)所需的数据,没有别的。 我通常会通过一个&#39;动作来解决这个问题。 POST到php页面包含我想要的内容,并通过开关选择它。 php代码通常如下所示:

if(isset($_POST["action"]))
{
    switch(action){
      case "func_1":
            func_1();
            break;
      case "func_2":
            func_2();
            break;
      case "func_2":
            func_3();
            break;
      case "func_2":
            func_4();
            break;
    }
} else {
    echo "error";
}

function func_1{
    //do something
}
function func_2{
    //do something
}
function func_3{
    //do something
}
function func_4{
    //do something
}

在函数内部,我编写了所需的代码,比如获取自动完成数据,然后通过json或其他东西回显它。

此外,ajax&#39;数据&#39;标签能够通过预建字符串来做html post / get paramteres:

$.ajax({
        type: "POST",
        url: "/ajax/search.php",
        data: 
        {
            search_keyword : search_keyword_value
        }
        cache: false,
        success: function(html)
        {
            $("#result").html(html).show();
        }
});