【发布时间】:2016-01-20 13:22:10
【问题描述】:
我在使用 jquery 库中的 ajax 函数时遇到了很大的问题。我是 jQuery、ajax 和 php 的完整初学者,但我正在研究这个学校项目,它应该是一个游戏(有点),页面创建一个 10x10 表,用数字填充它并自动选择一个单元格,然后用户可以猜测它是哪个单元格。
桌子下面有一个textarea,我应该在里面输出游戏的进度;例如,“猜错了!猜的次数:1;到正确单元格的距离:3”等等……
问题在于实施;我有两个 .php 文件,一个是玩游戏的主站点,另一个是统计部分(只是数学和其他东西)。
事不宜迟,以下是我的代码:
玩游戏的主.php文件的代码:
<script>
$(document).ready(function()
{
$("#tablezz td").click(function()
{
var column_num = parseInt( $(this).index() );
var row_num = parseInt( $(this).parent().index() );
var dat = { column: column_num, row: row_num };
$.ajax({
type: "GET",
data: dat,
url: "preveri.php",//this is the name of the mathemathical .php file
success: function(data){
$("#imamonkey").prepend(data);
}
})
});
});
</script>
</head>
<body>
<?php
echo "<table id='tablezz' border='1'>";
$counter=1;
for($i=0; $i<10; $i++){
echo"<tr>";
for($j=0; $j<10; $j++){
echo "<td> $counter </td>" ;
$counter=$counter+1;
}
}
echo"</tr>";
echo "</table>";
session_start();
$_SESSION["rightx"] = rand(1,10);
$_SESSION["righty"] = rand(1,10);
echo"<br>
<br>
<textarea id='imamonkey' rows='30' cols='46'></textarea>";
?>
</body>
还有另一个数学.php文件的代码;
<?php
$distance=sqrt((($_GET["column"] - $_SESSION["rightx"]) * ($_GET["column"] - $_SESSION["rightx"])) + (($_GET["row"] - $_SESSION["righty"]) * ($_GET["row"] - $_SESSION["righty"])));
if(isset($_SESSION["tries"])) {
$_SESSION["tries"]=$_SESSION["tries"]+1;
}
else {
$_SESSION["tries"]=1;
}
if($_SESSION["rightx"]==$_GET["column"] && $_SESSION["righty"]==$_GET["row"]) {
echo "Gooes guess. This took you $_SESSION['tries'] tries."
}
else {
echo "Bad call! The distance to the right cell is: $distance . So far you've tried $_SESSION['tries'] times.";
}
?>
唯一的问题是,我的 ajax 函数显然不能正常工作。当我单击<td> 单元格对其进行测试时,它会将空白内容插入到文本区域中。我一定是对数据和 dat 做错了什么,但我完全不知道它会是什么。例如,如何让它插入来自其他 .php 文件的回声?
非常感谢任何帮助,因为我完全不知道我做错了什么。提前致谢,BG
【问题讨论】:
-
你看过浏览器控制台中的AJAX请求/响应吗?
-
不,我该怎么做?我正在使用谷歌浏览器。 (抱歉有点网络编程的新手)
-
F12将显示有关您的浏览器的各种数据,包括请求、响应、连接等。
标签: javascript php jquery ajax get