1

嗨,我不确定从哪里开始,但我只是想学习 ajax 和 php,但不确定我在这里缺少什么。

我希望设置此代码,以便每次单击.test-ajax它都会增加一个数字,因为我正在寻找了解它如何与 php 一起使用我希望在 php 文件中发生递增。

这是我的 jQuery

$(document).ready(function(){
    $('.test-ajax').live('click', function(event)
    {
        $.ajax({
            url: 'variableplusone.php',
            type: 'post',
            data: { offset: 2 },
            success: function(offset) {
                alert(offset);
            }
        });
    });
});

还有我的variableplusone.php档案...

<?php
$x = add_one();

function add_one()
{
    if (isset($_POST['offset']))
    {
        $offset = $offset;
        echo $offset;
    }
}

return $x;

只是想知道如何$offset在php文件中获取受影响的值,然后返回并更新?

4

3 回答 3

1

你可以这样做echo $x;,然后在成功处理程序中你将把它放在你的offset变量中。

或者,如果您坚持使用更复杂的结构,我建议您查看http://php.net/manual/en/function.json-encode.php和使用 AJAX 的 JSON 请求。

于 2013-01-15T11:11:25.400 回答
1
function add_one() {
    $offset = 0;
    if(isset($_POST['offset'])) {
        $offset = $_POST['offset'];
        $offset++;
    }

    return $offset;
}

$x = add_one();
die("$x");

显然,您需要检查您的 $_POST['offset'] 是一个数字和其他健全性检查。要将值返回给javascript,就足以回显它,否则就死了。在 javascript 中,您将收到一个值,在您的示例中为 3(您传递 2,PHP 将其加一)。

编辑:要“保留”对数字的更改,您可以选择:您可以使用 javascript 或 cookie 在客户端记住它,或者使用会话变量在服务器端记住它。

$(document).ready(function(){
    myVariable = 2;

    $('.test-ajax').live('click', function(event)
    {
        $.ajax({
            url: 'variableplusone.php',
            type: 'post',
            data: { offset: myVariable },
            success: function(offset) {
            alert(offset);
            myVariable = offset;
            }
        });
    });
});

以上是在客户端上记住它的一种方法。请注意,如果用户刷新页面,则会将其重置为默认值 (2)。

于 2013-01-15T11:14:21.513 回答
0

您的 return $x 没有意义,并且您的 $x 无论如何都是空的,因为您的函数没有返回值。我认为您希望您的函数返回 $offset ,然后在您的 php 文件中回显您的 $x 。您的 php 文件的输出将在您的 js 中的 offset 变量中 - 所以在您的情况下它是偏移量。

像这样的东西

<?php
$x = add_one();

function add_one()
{
    if (isset($_POST['offset']))
    {
        return $_POST['offset']++;
    }
}

echo $x;
?>
于 2013-01-15T11:17:59.530 回答