无法获取通过ajax发送的帖子数据

时间:2018-10-04 21:27:09

标签: php jquery ajax

很抱歉这个问题,但是我不知道该用什么。

我正在尝试获取通过ajax发送的帖子。

echo $_POST['selected'];

我要随此发送帖子。

$(document).ready(function () {
    $("select.js-select").change(function () {
        var selected = $(".js-select option:selected").val();
        $.post(window.location.pathname, {selected: selected});
    });
});

我需要的信息在标题中(已选择:390)

不幸的是,我仍然收到错误消息,提示没有$ _POST ['selected']

我对ajax完全陌生,所以如果我犯了一些基本的错误或其他错误,敬请谅解。

Picture of header information

picture how it should look

picture how it looks

我以前没有发送任何数据。我只是用这些代码进行了测试。 (我不知道如何在此处发布HTML代码,所以我做了一张照片)

Picture from alle of the code

此处是要重做的JavaScript。

$(document).ready(function () {
    $("select").change(function () {
        var selected = $("select option:selected").val();
        $.ajax({
            type: 'POST',
            url: window.location.pathname,
            data: {
                selected: selected,
            }
        });
    });
});

Picture header with data in it

Picture which header it has when the page is loaded

1 个答案:

答案 0 :(得分:0)

  

观察它的外观

此图在左侧的请求列表中,在底部显示了对PHP脚本的Ajax请求。您正在使用问题中的JS发布数据,并且响应中包含该数据。

  

图片看起来

现在,您正在列表顶部查看对请求的响应。

因为它在顶部,所以它是对主文档的请求。这意味着它不能是对Ajax请求的响应。


让我们暂时跳过一下命令行。

类型:echo 1

它输出1。

现在输入echo

它什么也不输出。它不输出1。

当您运行一个程序两次而第二次不提供输入时。它不会像接收到您上次发送的输入一样。


您正在向服务器发出两个请求。它们都导致PHP程序运行。您使用Ajax制作的一个,并将其响应的数据发送给它。您以其他方式(可能是您提交表单,可能是通过链接)制作了另一个,并且不包含数据,因此它的响应就好像您没有包含数据一样。


您需要:

  1. 发布您想要的时间 所需的数据
  2. 将Ajax请求中的数据存储放在某个地方(例如,在会话或数据库中),然后在以后的请求中丢失了数据时,将其检索。