如何使用AJAX将javascript变量存储到我的sql数据库中
How to use AJAX to store a javascript variable to my sql database
我正试图将登录用户的分数保存到我的sql数据库中。我用HTML5和javascript编写了一个简单的乒乓球游戏。基本上,我需要从pong.js文件中获取分数变量,并在用户点击我页面上的按钮时将该分数写入数据库。我就是无法让它发挥作用。我将作为登录用户点击按钮,我的游戏分数将更新为1(这只是一个测试),但我不会从服务器的php文件中得到任何类型的反馈。
这是我的Index.php文件:
<?php
session_start();
$_SESSION['score'] = 0;
?>
<html>
<head>
<meta name = "description" content = "Josh Siegl's home web server"/>
<meta name = "keywords" content = "home, web, server, pong, html5, game"/>
<link rel="stylesheet" type = "text/css" href = "mycss.css" />
<title> JOSH SIEGL HOME WEB SERVER </title>
</head>
<body>
<div align = "center">
<?php if(!isset($_COOKIE['ID_SERVER']))
{
echo '<form id = "signIn" action = "getuser.php" method = "post">
UserName: <input type = "text" name = "username" />
Password: <input type = "password" name = "password" />
<input type = "submit" name = "SIGNIN" value = "SIGN IN"/> or
<a href = "register.html" id = "register" style="text-decoration:none"/> <i> Register </i></a>
</form>';
}
else
{
?>
<p> <?php echo "WELCOME " . $_COOKIE['ID_SERVER'];} ?> <?php if(isset($_COOKIE['ID_SERVER'])){echo '<a href = "logout.php"> logout</a>';} ?> </p>
<h1 id = "GAMENAME"> PONG </h1>
<canvas id="myCanvas" width="800" height="600"></canvas>
<script type="text/javascript" src = "pong.js" id = "gamescript"></script>
<div id = "status"></div>
<script language = "JavaScript" type = "text/javascript">
function Ajax_Call()
{
playerscore = 1;
var hr = new XmlHttpRequest();
var url = "submitscore.php";
var keys = "score=" + playerscore;
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
hr.onreadystatechange = function()
{
if (hr.readyState == 4 && hr.status == 200)
{
var returndata = hr.responseText;
document.getElementById("status").innerHTML = returndata;
}
}
hr.open("GET", "submitscore.php?score="+playerscore, true);
hr.send();
document.getElementById("status").innerHTML = "posting...";
}
</script>
<input type = "submit" name = "submitscore" value = "POST SCORE" onclick = "Ajax_Call();"></input>
<br /> <p> This is a pong clone, created by Josh Siegl, hosted on a home web server.
This game was created in HTML5 and should run on most up to date browsers. </p>
<br /> <p> I programmed this entire game in javascript and HTML5. The source code is publicly available, right click and hit inspect element </p>
</div>
</body>
</html>
submitscore按钮调用Ajax_Call(),我知道这是有效的,因为我更新了我的score变量,以显示Ajax_Call至少在执行(playerscore变量包含在pong.js中,如果你需要查看该文件,我会发布它,尽管我认为我不需要)。
这是我的submitcore php文件:
<?php
$q=$_GET['score'];
$con = mysql_connect("localhost", "root", "");
if (!$con)
{
die(mysql_error());
}
$mydb = mysql_select_db('users', $con);
if (!$mydb) {
die ('Can''t use $con : ' . mysql_error());
}
$sqlstatement = "UPDATE people
SET score= $q WHERE username =$_COOKIE['ID_SERVER']";
if (mysql_query($sqlstatement, $con))
{
echo "your score of: $q is now in the database";
}
else
{
die(mysql_error());
}
mysql_close($con);
?>
(这只是为了练习,所以不要试图破解我的数据库;)无论如何,我一直在尝试很多不同的东西,所以这就是为什么代码看起来有点草率的原因,我想做的就是在用户点击按钮时将我的得分变量提交到数据库。(我正在使用firefox测试我的网站,所以在这一点上,为了保持简单,我在创建新的xmlhttprequest对象时没有对其他浏览器进行任何检查。如果你认为这是问题所在,请告诉我)
如果你能告诉我一个前进的方向,或者一些可以尝试的东西,或者至少一个可以帮助我的网站。非常感谢。这是我的第一篇帖子,所以如果我做错了什么,请告诉我。非常感谢您的帮助
标题中的问题答案非常简单:与任何其他数据完全相同。PHP对AJAX一无所知。从PHP的角度来看,没有AJAX、浏览器或机器人程序,只有带数据的常规HTTP调用。因此,PHP必须处理这些数据并将其存储在数据库中(或拒绝),这对所有人来说都是一样的。
问题正文似乎更像是一篇文章,而不是一个问题。我养成了堆叠式写作的习惯,所以不去读这样的小说。只有我能说,这样长的帖子往往受到调试不足的琐碎启发。
您似乎需要Firebug作为当前的调试工具。这个出色的Fitrefox插件的Net
选项卡将显示我的js发出的HTTP请求和PHP的响应。所以,它会让你知道出了什么问题。
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 在php和mysql中选择选项.一旦选择了选项,就列出我的sql数据库数据
- 如何将sql服务器连接到我的Javascript游戏
- 我的sql内容到javascript数组
- 我把sql语句存储在数据库中的地方,用于blueimp / jQuery-File-Upload
- Ajax iFrame:PHP 不会在我的循环中添加我与 SQL 不同的字符串(以重建 HTML 代码)
- 我有一个javascript倒计时,但我需要倒计时才能从我的sql数据库中获取日期
- 我可以在我的JavaScript中包含php sql更新吗?
- 为什么可以't我使用javascript进行正确的SQL/PHP查询
- 用Javascript从我的sql数据库中获取一个值
- 如何从sql查询中检索数据并在我的javascript函数中使用它
- 如何使用AJAX将javascript变量存储到我的sql数据库中
- 为什么我的SUBSTRING或LEFT SQL查询没有显示
- 如何使用php和我的sql更改密码
- 如何订购我的表(SQL和JS)
- 我如何从SQL服务器获得值在我的JavaScript代码中使用
- 如何在向SQL数据库添加新数据后更新我的$作用域
- 需要帮助搜索我的sql
- 我可以创建一个HTML5表单,直接发送答案到我的电子邮件,而不必使用PHP或SQL
- 有麻烦替换/**评论**/与其他东西在我的javascript和sql