首頁  >  問答  >  主體

解釋為表單中的動畫圖像元素提交的圖像座標

我想透過檢查 php $_POST 陣列來捕獲指示使用者點擊動畫圖像的位置的 X:Y 值。問題是,雖然我可以獲得靜態圖像上的輸入提交信息,但我似乎無法從動畫圖像中獲取任何值。

以下是示範此行為的完整 HTML 頁面和表單:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Gunfighter Testing Page</title>
<style>
div {
   width:24px;
   height:24px;
   position:relative;
   -webkit-animation:glide 1s ease-in-out alternate infinite;
}

@-webkit-keyframes glide {
   from {
      left:-400px;
      top:0px;
   }
   
   to {
      left:400px;
      top:0px;
   }
}
</style>
</head>
<body>
<center>
<form method="post">
<input type="image" name="Staredown" value="Staredown" alt="Staredown" src="https://i.imgur.com/sQwX4Qg.png">
<input type="image" name="Gesture" value="Gesture" alt="Gesture" src="https://i.imgur.com/0iJnH5Q.png"><br>
<div><input type="image" name="Shoot" value="Shoot" alt="Shoot" src="https://i.imgur.com/i9oV2j3.png"></div> ;
</form>
</center>
</body>

這裡有一些 php 檢查表單(按鈕)提交並顯示點擊的圖片內的座標:

<?php
//var_dump($_POST);
echo "Form (button click) results (a pefect score is x=32 and y=32: <br>\n";
echo "<p>\n";
if ((isset($_POST["Staredown_x"])) || (isset($_POST["Gesture_x"])) || (isset($_POST["Shoot_x_x"]))){
    switch (true){
        case (isset($_POST["Staredown_x"])):
            echo "Staredown click coords=> X:" . $_POST["Staredown_x"] . "; Y:" . $_POST["Staredown_y"] . ".<br>\n";
            break;
        case (isset($_POST["Gesture_x"])):
            echo "Gesture click coords=> X:" . $_POST["Gesture_x"] . "; Y:" . $_POST["Gesture_y"] . ".<br>\n";
            break;
        case (isset($_POST["Shoot_x"])):
            echo "Shoot click coords=> X:" . $_POST["Shoot_x"] . "; Y:" . $_POST["Shoot_y"] . ".<br>\n";
            break;
    }
} else {
echo "Score will be displayed upon clicking on a button.<br>\n";
}
?>

為什麼我可以取得點擊圖像中的點擊座標(如果它們是靜態的),但無法讓動畫圖像以相同的方式表現?動畫圖像不會用點擊的坐標填充 $_POST["Shoot_x"] (或以我似乎可以在 php 中收集的任何其他方式註冊)。

P粉421119778P粉421119778209 天前548

全部回覆(1)我來回復

  • P粉674876385

    P粉6748763852024-02-27 14:47:35

    如果(與我不同)您注意輸入並檢查$_POST["imagename_x"] 而不是檢查$_POST["imagename_x_x"],則此範例將作為書面形式工作>"] 就像我所做的那樣。

    回覆
    0
  • 取消回覆