如何在没有post和get方法的情况下将php文件执行到jquery?

时间:2014-06-14 20:20:15

标签: javascript php jquery ajax json

我正在尝试使用PHP / mySQL / Jquery在HTML / CSS中编写自定义联系人内容管理器,以使其动态化。

我的登录表单将$ _REQUEST发送到我的connection.php,当auth正确时,我将json返回到我的Jquery,当它好时,我使用window.location.replace将用户重定向到控制面板。

当我在控制面板的index.php上时,我想检查用户的session_id是否进入我的sql数据库,是否超过了到期时间。

我有我的函数检查这个并返回好的值,但我想执行它并将结果发送到我的jquery而不使用GET或POST方法。

如果我记得,你有

$.ajax({
type: "POST",   //or GET method
dataType: "json",
url: $(this).attr('action'),
data: $(this).serialize(),
success: function({
}),
error: function({
})
});

但是你必须指定元素“data”no?我可以在没有数据的情况下使用它并将“file.php”作为url而不使用POST或GET方法吗?

我想进入我的成功方法我的php函数的结果: 如果json返回false,则用户可以访问该页面。 如果json返回true,我将注销用户并将其重定向到login.php

我正在使用此系统,因为我不希望任何人可以通过写入正确的URL或4天后访问控制面板。我将登录的任何人的到期时间设置为一小时(暂时)控制面板和我在所有页面上检查是否超过了到期时间。

我看到使用'window.location.replace'不允许返回上一页..有没有人有解决方案?我不希望有一个事件来重定向用户,只是在一个条件之后将他重定向到另一个URL(我的file.php)。

目前,我使用它来执行没有POST的PHP,使用$ .ajax的GET方法..

$(document).ready(function(){
            $(function(){
                var ticket = '<? echo $tickets; ?>';

                console.log(ticket);

                if ( ticket === '' )
                    $(".new_ticket h2").after('<p>Aucun nouveau ticket.</p>');
                else
                {
                    console.log('else');
                    $(".new_ticket h2").after('<p>Il y a un ticket.</p>');
                }
            });
        });

当我写信时,我有一个最后一个问题:

$(document).ready(function(){
            $(function(){
        }

当DOM准备就绪时,它是由jquery直接执行的吗?我可以在文件中写多个'$(function(){}'吗?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

使用POST或GET有什么问题?它完美无缺。

这里foobar.php返回一个状态为的json对象。将其更改为脚本返回的任何内容。

$.post('foobar.php', function(data) {
    if( data.status === false)  {
        //All good
    }else {
        //Redirect
        window.location.href = "http://newpagehere.com/file.php";
    }
});

使用window.location.href,您可以使用后退和前进按钮。

是的,当使用$(document).ready(function() { });时,它会在DOM准备就绪时运行。 http://api.jquery.com/ready/

最后一件事是我不会在这里依赖Javascript,当用户更改页面时,我会用PHP进行检查。我也会在那里处理重定向。