0

PHPファイルに、と呼ばれるdiv 、とmyDiv呼ばれる画像myImg、およびと呼ばれるPHP変数があるとし$xます。誰かがをクリックすると、の値に基づいてテキストを変更myImgする必要があります。myDiv's$x

たとえば、テキストをif 、ifmyDiv'sに変更したいとします。"Hello"$x==1"Bye"$x==2

テキストが変更されるたびに、の値も$x変更されます。この場合、$x==1クリックmyImgする$x'sと値が2($ x = 2)になり、その逆も同様です。

私はを使用していますが、これにもjQuery使用する必要があることを読みAjaxました(サーバーでの値を確認するため$x)が、その方法がわかりません。私はについて読みましAjaxたが、どの例もこのようなことを説明していません。

4

2 に答える 2

1

コードが有用な例を提供する可能性があるため、以前の例を引き続き表示できるように、新しい回答に改訂されたソリューションを追加します。

この例では、セッション変数を使用して ajax 呼び出し間の値を格納します。

FILE1.php

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
    $(function(){
        $('#myImg').click(function() {
            $.ajax({
                type: "POST",
                url: "FILE2.php",
                data: '',
                success:function(data){
                    alert(data);
                }
            });
        });
    });
</script>

<div id="myDiv">
    Click picture below to GO:<br />
    <img id="myImg" src="http://www.gravatar.com/avatar/783e6dfea0dcf458037183bdb333918d?s=32&d=identicon&r=PG">
</div>

FILE2.php

<?php
session_start();

if (isset($_SESSION['myNum'])) {
    $x = $_SESSION['myNum'];
}else{
    //No session set yet, so initialize with x = 1
    $x = 1;
}

if ($x == 1) {
    $_SESSION['myNum'] = 2;
    echo 'Hello its a one';
}else{
    $_SESSION['myNum'] = 1;
    echo 'Goodbye TWO';
}
?>
于 2012-11-21T20:08:38.250 に答える
0

ajax は必要ありませんが、使用できます。AJAX を使用する場合は、単に Hello または Bye をエコー バックする 2 つ目の php ファイルが必要になります。

この最初の例では、ajax を使用せずに必要な結果が得られます。これを PHP ファイルに保存し、そのページを参照します。

<?php
    $x = 2;
?>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
    $(function(){
        $('#myImg').click(function() {
            if (<?php echo $x;?> == 1) {
                alert ('Hello, its a one');
            }else{
                alert('Goodbye TWO');
            }
        });
    });
</script>

<div id="myDiv">
    Click on the image below:<br />
    <img id="myImg" src="http://www.gravatar.com/avatar/783e6dfea0dcf458037183bdb333918d?s=32&d=identicon&r=PG">
</div>

AJAX を使用して同じことを行うには、次のように変更します。

最初のファイル: FILE1.php

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
    $(function(){
        $('#myImg').click(function() {
            var theNumber = $('#myInput').val();
            $.ajax({
                type: "POST",
                url: "FILE2.php",
                data: 'myNumber=' + theNumber,
                success:function(data){
                    alert(data);
                }
            });
        });
    });
</script>

<div id="myDiv">
    Enter number to send to FILE2:
    <input type="text" id="myInput"><br />
    <br />
    Click picture below to GO:<br />
    <img id="myImg" src="http://www.gravatar.com/avatar/783e6dfea0dcf458037183bdb333918d?s=32&d=identicon&r=PG">
</div>

および FILE2.php

$x = $_POST['myNumber'];

if ($x == 1) {
    echo 'Hello its a one';
}else{
    echo 'Goodbye TWO';
}
于 2012-11-21T19:22:05.290 に答える