簡體   English   中英

如何將實時javascript變量轉換為php變量?

[英]How to convert live javascript variables to php variables?

我對此非常陌生,所以請原諒我的意大利面條代碼 - 我正在嘗試創建一個在游戲過程中實時跟蹤籃球統計數據的網頁,然后使用php保存總統計數據。 現在,我只需按一下按鈕就可以將從html頁面實時更新的變量傳遞給php。 我很確定我甚至不接近,但是在嘗試這個時我得到了'未定義的索引'消息。 這是我的html頁面:

<head>
  <meta charset="utf-8">
  <title>Scoring</title>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
  <script type="text/javascript">
    var points = 0;
    var assists = 0;
    var rebounds = 0;
    function add1point(){
      points++;
      document.getElementById('displaypoints').innerHTML = '<p>Points: ' + points;
    }
    function add2points(){
      points = points + 2;
      document.getElementById('displaypoints').innerHTML = '<p>Points: ' + points;
    }
    function add3points(){
      points = points + 3;
      document.getElementById('displaypoints').innerHTML = '<p>Points: ' + points;
    }
    function add1assist(){
      assists++;
      document.getElementById('displayassists').innerHTML = '<p>Assists: ' + assists;
    }
    function add1rebound(){
      rebounds++;
      document.getElementById('displayrebounds').innerHTML = '<p>Rebounds: ' + rebounds;
    }
  </script>
  </head>
<body>
  <center>
    <br>
    <button onclick="add1point()">+1 Point (Made Free-Throw)</button>
    <br>
    <br>
    <button onclick="add2points()">+2 Points (Made Field-Goal)</button>
    <br>
    <br>
    <button onclick="add3points()">+3 Points (Made Three-Pointer)</button>
    <br>
    <br>
    <br>
    <button onclick="add1assist()">+1 Assist</button>
    <br>
    <br>
    <br>
    <button onclick="add1rebound()">+1 (Offensive) Rebound</button>
    <br>
    <br>
    <button onclick="add1rebound()">+1 (Defensive) Rebound</button>
    <br>
    <br>
    <br>
    <br>
<form method="post" attribute="post" action="scoring.php">
    <div id="displaypoints"><script type="text/javascript">document.write('<p>Points: ' + points);</script></div>
    <div id="displayassists"><script type="text/javascript">document.write('<p>Assists: ' + assists);</script></div>
    <div id="displayrebounds"><script type="text/javascript">document.write('<p>Rebounds: ' + rebounds);</script></div>
    <br>
    <br>
    <br>
    <input type="submit" name="finish" id="finish" value="Finish Game">
</button>
</form>
  </center>
</body>
</html>

我的PHP代碼:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Game Finished</title>
</head>
<body>
<?php
$points = $_POST['points'];
$assists= $_POST['assists'];
$rebounds = $_POST["rebounds"];
?>
</p>
</body>

任何幫助都將非常感謝:)

正如詹姆斯的評論所說,你可以通過表格中的輸入輕松完成。 我猜你不希望用戶在游戲結束時改變值,所以你可以使用隱藏的輸入,如下所示:

<form method="post" action="scoring.php">
    <div id="displaypoints"><script type="text/javascript">document.write('<p>Points: ' + points+'</p><input type="hidden" name="points" value="'+points+'">');</script></div>
    ...
<input type="submit" name="finish" id="finish" value="Finish Game">

我重寫了代碼的一些部分。 我希望你不介意:)。

<!DOCTYPE html> 
<html>
    <head>
        <meta charset="utf-8">
        <title>Scoring</title>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
    </head>
    <body>
        <center>
            <br>
            <button onclick="addPoints(1)">+1 Point (Made Free-Throw)</button>
            <br>
            <br>
            <button onclick="addPoints(2)">+2 Points (Made Field-Goal)</button>
            <br>
            <br>
            <button onclick="addPoints(3)">+3 Points (Made Three-Pointer)</button>
            <br>
            <br>
            <br>
            <button onclick="addAssists(1)">+1 Assist</button>
            <br>
            <br>
            <br>
            <button onclick="addRebounds(1)">+1 (Offensive) Rebound</button>
            <br>
            <br>
            <button onclick="addRebounds(1)">+1 (Defensive) Rebound</button>
            <br>
            <br>
            <br>
            <br>
            <form method="post" attribute="post" action="scoring.php">
                <p>Points: <span id="displaypoints"></span></p>
                <p>Assists: <span id="displayassists"></span></p>
                <p>Rebounds: <span id="displayrebounds"></span></p>

                <!-- Any input element with "name" attribute will be sent to server (scoring.php script). -->
                <input type="hidden" name="points" id="points" />

                <!-- Any input element with "name" attribute will be sent to server (scoring.php script). -->
                <input type="hidden" name="assists" id="assists" />

                <!-- Any input element with "name" attribute will be sent to server (scoring.php script). -->
                <input type="hidden" name="rebounds" id="rebounds" />

                <br>
                <br>
                <br>
                <input type="submit" name="finish" id="finish" value="Finish Game">
            </form>
        </center>
        <script type="text/javascript">
            // Initial values
            var points = 0;
            var assists = 0;
            var rebounds = 0;

            // Find "span" element with "displaypoints" id.
            $displayPoints = $("#displaypoints");
            // Set element text to initial points value.
            $displayPoints.text(points);

            // Find "span" element with "displayassists" id.
            $displayAssists = $("#displayassists"),
            // Set element text to initial assists value.
            $displayAssists.text(assists);

            // Find "span" element with "displayrebounds" id.
            $displayRebounds = $("#displayrebounds");
            // Set element text to initial rebounds value.
            $displayRebounds.text(rebounds);

            // Function that receives the amount of points.
            // 1. Adds received amount of points to current amount of points.
            // 2. Sets the corresponding element text to current amount of points.
            // 3. Sets the element that's going to be sent to server value to current amount of points.
            function addPoints(amount){
                points += amount;
                $displayPoints.text(points);
                $("#points").val(points);
            }

            // Function that receives the amount of assists.
            // 1. Adds received amount of assists to current amount of assists.
            // 2. Sets the corresponding element text to current amount of assists.
            // 3. Sets the element that's going to be sent to server value to current amount of assists.
            function addAssists(amount){
                assists += amount;
                $displayAssists.text(assists);
                $("#assists").val(assists);
            }

            // Function that receives the amount of rebounds.
            // 1. Adds received amount of rebounds to current amount of rebounds.
            // 2. Sets the corresponding element text to current amount of rebounds.
            // 3. Sets the element that's going to be sent to server value to current amount of rebounds.
            function addRebounds(amount){
                rebounds += amount;
                $displayRebounds.text(rebounds);
                $("#rebounds").val(rebounds);
            }
        </script>
    </body>
</html>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM