php - Javascript X/Y 坐标到数据库?

标签 php javascript jquery mysql

这个问题我已经问了很多次了,所以我试着把它弄清楚。

我有一个 HTML 页面,页面上有一个攻击和重启链接,重启链接会在您获胜后出现。

这些链接是 JavaScript:

<script type="text/javascript">
<!--

function attack() { 
window.location = "attack.php?attack=1";
}


function restart() {
window.location = "battle.php?id=1&status=start";
}

-->
</script>

我想做到这一点,一旦用户点击其中一个链接(使用 javascript),它就会获取点击链接位置的 X/Y 坐标,并使用以下值将其插入数据库:

id
ip
username
x
y
restart

对于 id、ip、用户名和重启,我可以轻松地使用 MYSQL 和 PHP,但我不知道如何将 Javascript 信息插入数据库,这将是 X/Y 坐标。

最佳答案

使用 Insterstellar_coder 的 X/Y javascript 片段,您可以使用 javascript 对 php 脚本进行 ajax 调用。 ajax 调用将包含所有参数作为参数,服务器上的 php 脚本可以获得这些参数并进行数据库插入。

版本 (20111016211256-0400):添加文件以显示解决方案(据我正确理解问题):

我只研究了攻击部分。重启部分类似。

不需要 AJAX 部分,因为我利用了您的攻击并重新启动了 php 文件。


index.html:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
    <title>index</title>
    <script type="text/javascript" charset="utf-8">

        // get continous mouse move events and keep the coordinates in tempX and tempY
        // stolen from http://javascript.internet.com/page-details/mouse-coordinates.html
        var IE = document.all?true:false;
        if (!IE) document.captureEvents(Event.MOUSEMOVE)
        document.onmousemove = getMouseXY;
        var tempX = 0;
        var tempY = 0;
        function getMouseXY(e) {
            if (IE) { // grab the x-y pos.s if browser is IE
                tempX = event.clientX + document.body.scrollLeft;
                tempY = event.clientY + document.body.scrollTop;
            }
            else {  // grab the x-y pos.s if browser is NS
                tempX = e.pageX;
                tempY = e.pageY;
            }  
            if (tempX < 0){tempX = 0;}
            if (tempY < 0){tempY = 0;}  
            return true;
        }



        var ip = "10.0.0.1";
        var username = "me";
        var id = "1";

        function Coordinates(x,y) {
            this.x = x;
            this.y = y;
        }

        function attack(e) { 
            window.location = "attack.php?attack=1&x="+tempX+"&y="+tempY+"&ip="+ip+"&username="+username+"&id="+id;
        }


        function restart() {
            window.location = "battle.php?id=1&status=start";
        }
    </script>
</head>
<body id="index" onload="">
    <input type="button" name="attack" value="attack" id="attack" onClick="attack();">
    <input type="button" name="restart" value="restart" id="restart" onClick="restart();">

</body>

</html>

攻击.php

<?php

$METHOD = '_' . $_SERVER['REQUEST_METHOD'];
foreach ($$METHOD as $key => $value) {
    $$key = $value;
}

$log = array("attack" => $attack, "x" => $x, "y" => $y, "ip" => $ip, "username" => $username, "id" => $id);
//print_r($log);

try {
    // assuming you use mongodb locally
    $m = new Mongo(); 
    $db = $m->mydb;
    $logs = $db->logs;
    $logs->insert($log, true);
} catch (Exception $e) {
    echo $e; 
} 

?>

关于php - Javascript X/Y 坐标到数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7779181/

相关文章:

javascript - DOMContentLoaded 事件在任何情况下都不能被触发吗?

javascript - 具有 100% 不透明度颜色的 angular-chart.js 条形图

javascript - JQuery 备份替代方案

javascript - 悬停上的 CSS TABS

javascript - 如何修复浏览器移动 View 中未定义问题的 jQuery 'length'?

php - 在 Mac OS X 上的 PHP 中启用 PostgreSQL 支持

执行代码后的 PHP 重定向

php - AUTH_USER 与 LOGON_USER 与 REMOTE_USER

数据库中的 PHP 数字降序?

javascript - 如何响应 "shown.bs.collapse"事件?