【发布时间】:2016-08-01 13:02:24
【问题描述】:
我想从其他页面获取输入值,为什么它不起作用?
代码如下:
第 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 滚动系统正常工作,我收到消息是赢了还是输了,但我的数据库中没有任何反应。如果我将第 2 页 $winorlose 更改为数字,它可以工作。
我认为会话可能有问题。
【问题讨论】:
-
你开始会话了吗?
-
你不能混合使用 javascript 和 PHP。 PHP 在页面加载之前运行,javascript 在之后运行。如果要更新会话,则需要向 PHP 页面发送 ajax 调用。
-
money=money+'$wonorlose'至少应该是money=money+'" . $wonorlose . "',还有什么不好的...... -
如果你看到我在函数 roolhead @aynber 上调用它
-
@NiekasNiekas 是的,但那是在 javascript 函数中。 PHP 已经解析出页面并在按下按钮时完成。如果页面加载时 $_GET 为空,则会话将为空。如果要在按下按钮时更新会话,则需要使用 ajax 向服务器发送请求。