我在使用 jquery 库中的 ajax 函数时遇到了大麻烦。我是 jQuery、ajax 和 php 的完全初学者,但我正在研究这个学校项目,它应该是一个游戏(某种),其中页面创建一个 10x10 表格,用数字填充它并自动选择其中一个单元格,然后用户可以猜测它是哪个单元格。
table 下面有一个文本区域,我要在其中输出游戏的进度;例如,“猜测错误!猜测次数: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>
单元格来测试它,它将空白内容插入文本区域。我一定是对数据和数据做错了什么,但我完全不知道那会是什么。例如,如何让它插入来自其他 .php 文件的回显?
非常感谢任何帮助,因为我完全不知道我做错了什么。提前致谢,BG
最佳答案
在 AJAX 调用中,您尝试将数据添加到文本区域:
$("#imamonkey").prepend(data);
这意味着数据被放置在 DOM 中的文本区域之前(如果您在浏览器控制台中查看更新的信息,您实际上可能能够看到数据)。您想要做的是将数据放入文本区域中:
$("#imamonkey").val(data);
在您的 PHP 文件中,您需要将 session_start();
添加到文件的开头以及您希望在其中使用 session 数据(例如 HTML)的任何文件文件。
关于javascript - ajax(PHP 和 Javascript)出现问题 - 如何正确传输?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34901253/