PHP 未接收到 isset($_POST['value']) 数据

isset($_POST['value']) data is not recieved by php

提问人:József Kiss 提问时间:11/10/2021 更新时间:11/10/2021 访问量:77

问:

我正在尝试使用 POST 将一些值从 javascript 文件发送到 php 页面。

AJAX 代码:

let inputval = $input.val();
$.ajax({url: "../checkout/test.php", type : 'post', data : {'inputval': inputval}, success: 
function(data){ 
                console.log(data);
              }

PHP代码

 if (isset($_POST['inputval'])){
        $result = $_POST['inputval'];
        echo json_encode($result);
    }
    else {
        echo 'Not recieved';
    }

当我在网络中检查它时,一切都符合预期,但是当我打开实际页面时,没有收到数据。

JavaScript PHP 阿贾克斯 帖子

评论

0赞 József Kiss 11/10/2021
我的意思是,当我在网络中查看结果(对于JS文件)时,数据会正确显示在php文件中。
2赞 AbraCadaver 11/10/2021
显示什么?var_dump($_POST);
0赞 József Kiss 11/10/2021
它给出一个空数组。

答:

0赞 Quentin 11/10/2021 #1

当我打开实际页面时,没有收到数据。

首先,使用 JavaScript 发出 POST 请求。数据在网络选项卡中可见。它发送到PHP程序。PHP 程序响应。响应将记录到控制台。

然后你“打开实际页面”。这是一个新请求。它不是包含数据的 POST 请求。 这次是空的。响应将是对新请求的响应,而不是对上一个 POST 请求的响应。由于响应的内容取决于并且已经更改,因此此响应是不同的。$_POST$_POST

如果要存储第一个请求中的数据,然后在后续请求中显示它,则需要将其显式存储在某个位置(例如数据库或会话变量),然后在收到后续请求时检查该位置是否有数据。inputval

逻辑将运行如下内容:

IF this is a POST request
    store the inputval in the session
    send a confirmation message to the client
ELSE IF the session contains an inputval
    send it to the client
ELSE
    send a message to say that there is no data to the client

评论

0赞 József Kiss 11/10/2021
这是有道理的,谢谢!