2016-08-01 157 views
-2

我想从其他页面获取输入值,以及它为什么不工作?无法从其他页面获取输入值

下面是代码:

第1页:

<h1 align="center"> 
    <form name="form" action="" method="get"> 
     <input type="text" name="wonorlose" id="wonorlose" value="50"> 
    </form> 
</h1> 

在按钮点击:

<script> 
    function rollHead(){ 
     var die1 = document.getElementById("die1"); 
     var status = document.getElementById("status"); 
     var d1 = Math.floor(Math.random() * 2) + 1; 
     if(d1 == 1) 
     { 
      die1.innerHTML = "You lose!"; 
      fliped.innerHTML = "Fliped Tail!"; 
      var getsession = new XMLHttpRequest(); 
      getsession.open('POST','getsession.php',true); 
      getsession.send(); 
      var ajax = new XMLHttpRequest(); 
      ajax.open('POST','lose.php',true); 
      ajax.send(); 
     } 
     else if (d1 == 2) 
     { 
      die1.innerHTML = "You won!"; 
      fliped.innerHTML = "Fliped Head!"; 
      var getsession = new XMLHttpRequest(); 
      getsession.open('POST','getsession.php',true); 
      getsession.send(); 
      var ajax = new XMLHttpRequest(); 
      ajax.open('POST','won.php',true); 
      ajax.send(); 
     } 
    } 
</script> 

页ajax.php:

<?php 
    session_start(); 
    include_once 'dbconnect.php'; 

    if(!isset($_SESSION['user'])) 
    { 
     header("Location: /manopuslapis/index.php"); 
    } 
    $res=mysql_query("SELECT * FROM users WHERE user_id=".$_SESSION['user']); 
    $userRow=mysql_fetch_array($res); 

    $_SESSION['wonorlose'] = $wonorlose; 
    echo $wonorlose; 
    mysql_query("UPDATE `users` SET credits=credits+'$wonorlose' WHERE user_id=".$_SESSION['user']); 
?> 

页getsession.php :

<?php 
    session_start(); 
    include_once 'dbconnect.php'; 

    if(!isset($_SESSION['user'])) 
    { 
    header("Location: /manopuslapis/index.php"); 
    } 
    $res=mysql_query("SELECT * FROM users WHERE user_id=".$_SESSION['user']); 
    $userRow=mysql_fetch_array($res); 

    $_SESSION['wonorlose'] = $_GET["wonorlose"]; 
?> 

P.S roll system works,and get message won or lose but nothing happens in my database。如果我将第2页$winorlose更改为数字,则可以使用。

我认为会议可能有问题。

+3

你有没有开始会议? –

+0

您不能将JavaScript和PHP混合使用。 PHP在页面加载之前运行,JavaScript在之后运行。如果你想更新会话,你需要发送一个Ajax调用到PHP页面。 – aynber

+0

'money = money +'$ wonorlose''应该至少是'money = money +'“。$ wonorlose。”',还有什么更坏的... – eisbehr

回答

-1

试试这个

session_start(); 
$_SESSION['wonorlose'] = $wonorlose; 
echo $wonorlose; 
mysql_query("UPDATE `users` SET money=money+'$wonorlose' WHERE user_id=".$_SESSION['user']); 
+0

我已经开始会话。我发布了第2页的完整代码 –

+0

echo this'“UPDATE users SET money = money + $ wonorlose WHERE user_id =”。$ _ SESSION ['user']以及结果是什么? – paranoid

+0

如果我更改mysql_query(“更新'用户'SET钱=钱+'$ wonorlose'WHERE user_id =”。$ _ SESSION ['user']);如果我创建其他页面,有这个功能:$ _SESSION ['wonorlose'];它的工作原理和增加+10钱 –

0

你不能像这样创建一个会话:

<script> 
function rollHead(){ 
    ..... 
    <?php 
    $_SESSION['wonorlose'] = $_GET["wonorlose"]; 
    ?> 
...... 
} 

因为PHP在浏览器的HTML解析的时间运行。所以从技术上讲,没有会话以“wonorlose”的名字保存。

在这种情况下,您必须创建一个ajax调用来创建一个会话和另一个调用来读取它。

+0

但如果我创建其他页面有此功能:$ _SESSION ['wonorlose' ] = $ _GET [“wonorlose”];它将如何获得可变值,因为它仍然在第1页上 –

+0

您必须创建一个ajax调用来创建会话,而不是您的第2页,您将通过使用$ _SESSION [ 'wonorlose'] = $ wonorlose; –

+0

我创建了这一点,它不工作我叫它上roolhead