如何使用$ .post()返回字符串而不是整页

时间:2012-04-16 19:44:58

标签: php jquery ajax post json

好的家伙,使用以下代码:

$(document).ready(function() {
    $(".list-book-description").css("display", "none");
    $("#user-panel-login").css("display", "none");
    $('#login-form').submit(function(e) {
        e.preventDefault();
        var formUsername=$("#login-form #username").val();
        var formPassword=$("#login-form #password").val();
        if((formUsername.length<6))
        {
        $("#ajax-output").html("<div class='error'>Attenzione username troppo breve!</div>");
        }
        else if((formPassword.length<6))
        {
            $("#ajax-output").html("<div class='error'>Attenzione password troppo breve!</div>");
         }
    else
    {
        $.post(
            'index.php?module=login',
            {
                "username": formUsername,
                "password": formPassword,
            },
            function(data){
                $("#ajax-output").html(data);
            }
        );
    }
});
});

我尝试传递?index.php&module=login&function=1 #login-form字段#username获得的#password用户名和密码login()setLogin(); php函数,如果数据进入数据库以设置登录会话,则使用function Login() { if(!checkLogin()) { $function=@stringEscape($_GET['function']); if($function==1) { $username=stringEscape($_POST['username']); $password=sha1(stringCrypt($_POST['password'], 'sha1').stringCrypt(DB_CRYPT, 'sha1')); if(setLogin($username, $password)) { echo "<div class='ok'>Login effettuato con successo, tra pochi secondi verrai riportato alla homepage!</div>"; } } } else notfound(); } function setLogin($username, $password, $time="") { if(!checkLogin()) { if((isset($username)) && (isset($password))) { $query=mysql_query("SELECT * FROM ".DB_PREF."users WHERE user_username='".$username."' AND user_password='".$password."'"); if(mysql_num_rows($query)) { $fetch=mysql_fetch_assoc($query); $_SESSION['logged_user_id']=$fetch['user_id']; $_SESSION['logged_user_username']=$fetch['user_username']; return true; } else { echo "<div class='error'>Dati non validi, ripeti la procedura di login o <a href='?index.php&module=registration'>registrati</a>!</div>"; } } } else notfound(); } 函数。

$.post()

现在我遇到一个问题,当我在#ajax-input div中提交登录表单的$.post结果时,它不会返回登录功能的结果,而是返回索引页面+登录功能结果。

如果我尝试将“json”参数设置为echo json_encode()函数并在php函数中设置{{1}}它根本不起作用。那么,可能是什么问题?

1 个答案:

答案 0 :(得分:2)

你在这里请求一个完整的页面,我想。你可以做一个参数,发布或获取,你决定,如果这是真的,那么你返回整页,他只是假你只是返回一个JSON字符串或类似的东西。我相信甚至可以确定请求是否来自ajax!这可能是你的第二选择。我想,只需添加一个简单的if语句即可。