Javascript 在不重新加载页面的情况下提交带有W A S D的表单
我正在制作一个2D游戏,这个游戏有简单的行走代码,可以通过表单设置位置,但需要重新加载页面Javascript 在不重新加载页面的情况下提交带有W A S D的表单,javascript,php,jquery,forms,Javascript,Php,Jquery,Forms,我正在制作一个2D游戏,这个游戏有简单的行走代码,可以通过表单设置位置,但需要重新加载页面 <script type="text/javascript"> document.onkeydown = KeyCheck; function KeyCheck(e) { var KeyID = (window.event) ? event.keyCode : e.keyCode; switch(KeyID)
<script type="text/javascript">
document.onkeydown = KeyCheck;
function KeyCheck(e)
{
var KeyID = (window.event) ? event.keyCode : e.keyCode;
switch(KeyID)
{
case 87:
function up()
{
document.navi.keydir.value = "up";
document.navi.submit();
}
var uptime;
uptime = setTimeout(up, 1000);
break;
case 65:
function left()
{
document.navi.keydir.value = "left";
document.navi.submit();
}
var lefttime;
lefttime = setTimeout(left, 1000);
break;
case 68:
function right()
{
document.navi.keydir.value = "right";
document.navi.submit();
var righttime;
righttime = setTimeout(right, 1000);
break;
case 83:
function down()
{
document.navi.keydir.value = "down";
document.navi.submit();
}
var downtime;
downtime = setTimeout(down, 1000);
break;
}
}
</script>
<form id="navi" name="navi" class="navi" action="move.php" method="post">
<input name="keydir" type="hidden" value="" />
</form>
document.onkeydown=KeyCheck;
功能键检查(e)
{
var-KeyID=(window.event)?event.keyCode:e.keyCode;
开关(KeyID)
{
案例87:
函数up()
{
document.navi.keydir.value=“up”;
document.navi.submit();
}
无功运行时间;
正常运行时间=设置超时(上限为1000);
打破
案例65:
函数左()
{
document.navi.keydir.value=“left”;
document.navi.submit();
}
时间;
lefttime=setTimeout(左,1000);
打破
案例68:
功能权限()
{
document.navi.keydir.value=“右”;
document.navi.submit();
时间;
righttime=setTimeout(右,1000);
打破
案例83:
函数down()
{
document.navi.keydir.value=“向下”;
document.navi.submit();
}
var停机时间;
停机时间=设置超时(向下,1000);
打破
}
}
我需要的脚本,将发布此表单到MYSQL使用此键,而无需重新加载页面
<script type="text/javascript">
document.onkeydown = KeyCheck;
function KeyCheck(e)
{
var KeyID = (window.event) ? event.keyCode : e.keyCode;
switch(KeyID)
{
case 87:
function up()
{
document.navi.keydir.value = "up";
document.navi.submit();
}
var uptime;
uptime = setTimeout(up, 1000);
break;
case 65:
function left()
{
document.navi.keydir.value = "left";
document.navi.submit();
}
var lefttime;
lefttime = setTimeout(left, 1000);
break;
case 68:
function right()
{
document.navi.keydir.value = "right";
document.navi.submit();
var righttime;
righttime = setTimeout(right, 1000);
break;
case 83:
function down()
{
document.navi.keydir.value = "down";
document.navi.submit();
}
var downtime;
downtime = setTimeout(down, 1000);
break;
}
}
</script>
<form id="navi" name="navi" class="navi" action="move.php" method="post">
<input name="keydir" type="hidden" value="" />
</form>
编辑:我让这个表单与
$(“#navi”).ajaxSubmit({url:'move.php',键入:'post'})
但是如果有人能告诉我这对页面过载有好处吗?首先,只需移动user.Secrond,然后打开document.navi.submit()进入异步ajax调用,如果失败,请将用户移回上一个已知的正确位置。您需要第二个页面来使用ajax将数据发布到中,就像使用jquery库一样。另一个页面将接受POST数据,对其进行sanatize并插入数据库记录。Google“jquery form ajax POST”您可以看到它在登录时是如何工作的:test password:testOk,我知道了如何移动。因此,您需要一种双管齐下的方法来获得用户体验。首先,让用户使用AJAX在地图上移动,而不使用post,只需使用JS移动用户。如果AJAX调用失败,请提醒用户并将其返回到最后一个已知的有效位置。转到moving用户我想使用javascript脚本,它可以像其他玩家一样在一段时间内重新加载我的玩家。对于游戏窗口,我应该使用div或canvas?对,我是说使用两个JS调用。一个用于移动用户,另一个用于进行ajax调用,即moveUser()if(ajax.failure()| ajax.result.dbnotsaved))moveUserBack()使用HTML5画布可能更容易,但你所做的也会起作用。你能告诉我一个没有广告的好的免费主机吗?因为这个主机是垃圾。