1

こんにちは、どこから始めればよいかよくわかりませんが、ajax と php を学びたいだけですが、ここで何が欠けているのかわかりません。

このコードを設定して、クリックするたびに.test-ajax数値がインクリメントされるようにします。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;

PHPファイルで影響を受ける値を取得し、$offset戻って更新する方法を知りたいですか?

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 はそれを 1 ずつ増やします)。

編集:番号の変更を「保持」するには、選択肢があります。クライアント側で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;
            }
        });
    });
});

上記は、クライアントでそれを記憶する 1 つの方法です。ユーザーがページを更新すると、デフォルト (2) にリセットされることに注意してください。

于 2013-01-15T11:14:21.513 に答える
0

関数が値を返さないため、リターン $x は意味がなく、 $x はとにかく空です。関数が $offset を返し、PHP ファイルに $x をエコーするようにしたいと思います。あなたのphpファイルの出力はあなたのjsのオフセット変数になります - あなたの場合はオフセットです。

このようなもの

<?php
$x = add_one();

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

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