1

我有一个页面显示用户是否已付款。如果他们还没有付款,我需要给他们看一张大红色的图片X并显示一个付款按钮,如果他们已经付款,则显示一个大的绿色支票。我知道如何为 php 脚本编写代码,让我们调用它pay.php,但我需要解决主页 ajax 的逻辑。所以我在想这样的事情:

<div id="payment">
    <div id="image"></div>
    <div id="pay_text></div>
</div>

<script>
$(document).ready(function(e) {
    if(<?php echo $is_logged_in; ?>) {
        $('#payment').load(function() {
            $.ajax({
                data: $this.serialize(), // get the form data
                type: "POST", // GET or POST
                url: "Scripts/pay.php", // the file to call
                complete: function(data) {
                    if(data=="Yes") {
                        $('#image') //do some jquery to make the correct image display here
                        $('#pay_text').text("Yah you paid");
                    } else {
                        $('#image') //do some jquery to make the correct image display here
                        $('#pay_text').text("Sorry you didn't pay");
                    }
                }
            });
        }
    }
});
</script>

所以基本上脚本会回显yesno. 而且我只想在用户登录后评估此负载(我需要查看该特定用户是否付费)。那么我的逻辑是写的还是我的路要走?

4

1 回答 1

2

您可能不应该使用load这种方式,并且确实不需要它。

您的 PHP 变量$is_logged_in当然必须true在 ajax 函数运行之前,并且返回trueorfalse通常是使用代码的方式,而不是返回yesor no,如果data是,true或者false您可以将其粘贴在 if 语句中,没有模糊!

至于用ajax函数发送表单数据,是什么形式?什么是$this

您必须确定用户是否在服务器端付费,并且您实际上并不需要来自客户端的任何数据来执行此操作,您需要做的就是检查您的数据库或您正在使用的任何东西查看该用户是否付款,然后返回truefalse

<script type="text/javascript">
    $(document).ready(function() {
        if(<?php echo $is_logged_in; ?>) {
            $.ajax({
                type: "POST",
                url: "scripts/pay.php"
            }).done(function(data) {
                if (data) {
                    $('#image').css('background', 'url(/yes.png)');
                    $('#pay_text').text("Yah you paid");
                }else{
                    $('#image').css('background', 'url(/no.png)');
                    $('#pay_text').text("Sorry you didn't pay");
                }
            });
        }
    });
</script>​​​​​​​​​
于 2012-10-26T21:45:35.080 回答