【发布时间】:2016-01-14 16:52:40
【问题描述】:
首先我想解释一下我的任务是什么。我必须使用填充从 1 到 100 的数字的 php 创建一个 10X10 的表格,并随机选择一个表格单元格。用户的任务是通过单击表格找到该单元格。每次单击后,用户单击和所选单元格之间的距离被打印到文本区域。代码运行良好,但我需要做的另一件事是,如果单击的单元格不是正确的,则将单元格的背景颜色更改为红色,如果用户猜到了该单元格,则将其更改为绿色。我试图将调用更改实现为函数,但它是在第二次猜测之后调用的,而不是在第一次猜测之后调用的。谁能帮帮我?
HTML/PHP 代码:
<!DOCTYPE html>
<html>
<head>
<title>find cell</title>
<meta charset="UTF-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<style>
table{border-collapse:collapse;}
td{width:50px;height:50px;border: 2px solid #000000; background-color:#ff6600;color:white;text-align:center;}
h2{color:grey;}
</style>
<script type="text/javascript">
function check(x,y){
$.get("check.php?x="+x+"&y="+y, function(answer){
$("#res").prepend(answer+"\n");
});
}
</script>
</head>
<body>
<h1>Find cell...</h1>
<h2>(Refresh site to start again.)</h2>
<table>
<?php
session_start();
for($j=0;$j<10;$j++){
echo "<tr>";
for($i=0;$i<10;$i++){
echo "<td onclick='check(".$j.",".$i.");'>".($j*10+($i+1))."</td>";
}
echo "</tr>";
}
$_SESSION["rx"]=rand(0,9);
$_SESSION["ry"]=rand(0,9);
$_SESSION["p"] = 0;
?>
</table>
<br>
<form method="GET">
<textarea rows="30" cols="50" id="res" style="overflow:scroll;"></textarea>
</form>
</body>
<html>
check.php 文件:
<?php
if(isset($_GET["x"]) && isset($_GET["y"])){
session_start();
$_SESSION["p"]++;
if($_GET["x"] == $_SESSION["rx"] && $_GET["y"] == $_SESSION["ry"]){
echo "Victorious after ".$_SESSION["p"]." tries.";
}
else{
$distance = sqrt(($_SESSION["rx"]-$_GET["x"])*($_SESSION["rx"]-$_GET["x"])+($_SESSION["ry"]-$_GET["y"])*($_SESSION["ry"]-$_GET["y"]));
echo intval($distance);
}
}
?>
【问题讨论】:
-
你试过用 CSS 吗?
-
我尝试根据返回的函数更改单元格的类,但到目前为止没有成功......还尝试使用 jquery 直接更改 css 也没有运气......
-
到目前为止您尝试过什么?我们在这里帮助解决您尝试过的问题,而不是完全编写解决方案。
-
发布您尝试过的 jQuery 脚本。您可能只是没有针对正确的 DOM 元素来更新 CSS。
-
你能提供一个生成
table的例子吗?我想在 jsfiddle 上试试。
标签: javascript php jquery html