javascript - ajax(PHP 和 Javascript)出现问题 - 如何正确传输?

标签 javascript php jquery ajax get

我在使用 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/

相关文章:

javascript - 更改Python中的默认日期打印格式

php - onClick 事件的 javascript 变量中的值没有改变

javascript - react - onKeyDown 事件

php - 循环内的繁重处理 - 如何优化?

PHP单元 |测试json返回

javascript - 根据用户选择更改

javascript - 从项目网格中获取属性

javascript - 如何将 RUN 操作绑定(bind)到 Cloud9 中正确的 NodeJS 版本?

php - 我需要通过 PHP 上的 SQL 查询显示存储在图库中的图像

javascript - 将每个单词的每个首字母包装在 span 标记中 - javascript