suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Interpretieren Sie die für animierte Bildelemente in einem Formular übermittelten Bildkoordinaten

Ich möchte die X:Y-Werte erfassen, die angeben, wo der Benutzer auf das animierte Bild geklickt hat, indem ich das PHP-Array $_POST überprüfe. Das Problem besteht darin, dass ich zwar die Eingabeübermittlungsinformationen für das statische Bild erhalten kann, aber anscheinend keine Werte aus dem animierten Bild erhalten kann.

Hier ist die vollständige HTML-Seite und das Formular, die dieses Verhalten demonstrieren:

<!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>

Hier ist ein PHP, das die Übermittlung des Formulars (der Schaltfläche) überprüft und die Koordinaten im angeklickten Bild anzeigt:

<?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";
}
?>

Warum kann ich die Klickkoordinaten in angeklickten Bildern abrufen (wenn sie statisch sind), aber nicht, dass sich animierte Bilder auf die gleiche Weise verhalten? Das animierte Bild füllt $_POST["Shoot_x"] nicht mit den Koordinaten des Klicks (oder registriert sich auf keine andere Weise, die ich scheinbar in PHP sammeln kann).

P粉421119778P粉421119778289 Tage vor658

Antworte allen(1)Ich werde antworten

  • P粉674876385

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

    如果(与我不同)您注意输入并检查 $_POST["imagename_x"] 而不是检查 $_POST["imagename_x_x"],则此示例将作为书面形式工作>"] 就像我所做的那样。

    Antwort
    0
  • StornierenAntwort