0

より適切な用語がないため、onClick イベントに「リンク」された switch ステートメントがあります。スイッチにケースが1つあれば動作します。4 つのケースすべてがアクティブな場合、どれも機能しません。ヘルプ/提案をありがとう、本当に感謝しています。

以下のコード:

PHP ファイル (mapcontroller.php):

function playerMove($direction) 
{
    Global $mysqli;

    $sqlMoveNorth = "UPDATE ss_character SET coord_y = coord_y + 1  WHERE username = '".$_SESSION['usr']."'";
    $sqlMoveSouth = "UPDATE ss_character SET coord_y = coord_y - 1  WHERE username = '".$_SESSION['usr']."'";
    $sqlMoveEast = "UPDATE ss_character SET coord_x = coord_X + 1  WHERE username = '".$_SESSION['usr']."'";
    $sqlMoveWest = "UPDATE ss_character SET coord_x = coord_X - 1  WHERE username = '".$_SESSION['usr']."'";

    switch ($direction)
    {
        case "north":
            mysqli_query($mysqli, $sqlMoveNorth);
            break;

        case "south":
            mysqli_query($mysqli, $sqlMoveSouth);
            break;

        case "east":
            mysqli_query($mysqli, $sqlMoveEast);
            break;

        case "west":
            mysqli_query($mysqli, $sqlMoveWest);
            break;

        default:
            echo "Pick something!";
            break;
    }
}

HTML ファイル (travel.inc.php):

<div class="map-wrapper">

    <?php $currentPage = $_SERVER['REQUEST_URI']; ?>

    <div class="map-move-container">
        <div class="map-move-north"><a onclick="<?php playerMove(north); ?>" href="<?php $currentPage ?>"> Move North</a></div>
        <div class="map-move-west"><a onclick="<?php playerMove(west); ?>" href="<?php $currentPage ?>"> Move West</a></div>
        <div class="map-move-east"><a onclick="<?php playerMove(east); ?>"  href="<?php $currentPage ?>"> Move East</a></div>
        <div class="map-move-south"><a onclick="<?php playerMove(south); ?>"  href="<?php $currentPage ?>"> Move South</a></div>
    </div>

</div>
4

1 に答える 1

0

コードはまったく機能しません。PHP はサーバー側の言語であり、ユーザーの干渉でそれを使用しようとしているため、これは不可能です。

正しいアプローチは、onclick で ajax リクエストを送信して結果を取得することです。jquery と多くの有名な JS フレームワークを使用できます。

于 2013-03-05T02:56:02.510 に答える