jQuery Ajax 发送到同一页面

jQuery Ajax send to the same page

我想弄清楚当我没有为它定义 url 时 jQuery Ajax 是如何工作的。所以它应该将数据发送到 ajax 所在的同一页面。 ajax 完成后如何获取 'GET' 数据?

<script type="text/javascript">
$(document).ready(function() {
    $(".idoszak").change(function() {
        var idoszak=$(this).val();
        var dataString = 'idoszak='+ idoszak;

        $.ajax({
            type: "GET", // or POST
            url: "statisztika.php", //The page where is also this script
            data: dataString,
            cache: false,
            success: function(html) {
                ???
            } 
        });

    });
});

现在 php:

    <select name="idoszak" class="idoszak">
        <option value="felev">Félév</option>
        <option value="evvege">Évvége</option>
      </select>
<div id="statisztika">
.
.
.
<?
        $katlag = mysqli_query ($link, "SELECT jegy FROM jegyek WHERE `jegyek`.`osztaly` = '$osztaly' AND `jegyek`.`piros` = '0' AND datum = '$idoszak'");
                $katlagok = mysqli_num_rows($katlag);
?>
.
.
.
</div>

这是正在发生的事情:

  1. 您在地址栏中输入 URL(或输入 link 或类似内容)
  2. 您的浏览器向 URL
  3. 发出请求
  4. 服务器向浏览器发回响应
  5. 浏览器呈现页面
  6. 你触发了一些JavaScript
  7. JavaScript 使浏览器向相同的 URL 发出 Ajax 请求(好吧,几乎相同 URL:您已经更改了查询字符串)
  8. 服务器向浏览器发回响应
  9. 浏览器使响应可用于 JavaScript

您似乎希望第 8 步 浏览器将第 4 步呈现的页面替换为基于第 7 步 的数据的页面。那不会发生。

所发生的只是响应可用于 JavaScript。

该响应的主体将位于成功函数的 html 变量中。

如果您想更改用户在页面中看到的内容,则必须编写 JavaScript 来操作页面的 DOM(可以使用 html变量)。