2017-08-05 103 views
3

我对此非常陌生,所以请原谅我的意大利面代码 - 我试图制作一个网页,在游戏过程中记录篮球统计数据,然后使用php保存统计数据。现在,我只需要按下按钮,将正在从我的html页面实时更新的变量传递给php。我很确定我没有接近,但是在尝试这个时得到'undefined index'消息。这里是我的html页面:如何将实时javascript变量转换为php变量?

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

任何帮助都将不胜感激:)

+0

你的表单需要''领域所谓的“点”,“助攻”和“篮板”用适当的值。 – James

+0

@James你能举一个这样的例子吗? –

回答

1

我改写了你的代码的某些部分。我希望你不介意:)。

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

正如詹姆斯的评论说,你可以通过表单中的输入轻松完成。我猜你不希望用户可以在比赛结束更改值,因此您可以使用输入隐藏的,是这样的:

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