通过AJAX发送的数据在$ _POST中不可用

时间:2019-03-30 04:38:53

标签: php ajax post

我的Javascript代码如下:

function on(logged_user) {
    alert(logged_user);

    $.ajax({
        url: "update_stats.php",
        type: "POST",
        data: logged_user
    });
}

update_stats.php包含

<?php
     $logged_user = $_POST["logged_user"];
?>

但是我可以看到$ logged_user只是一个空字符串(我正在将其插入数据库表中)

4 个答案:

答案 0 :(得分:1)

您用于$.ajax调用的数据参数格式不正确。来自manual

  

data选项可以包含以下形式的查询字符串   key1 = value1&key2 = value2,或者是{key1:'value1'   key2:“ value2”}

您应该将该行更改为:

data: { logged_user : logged_user },

data: 'logged_user=' + logged_user,

答案 1 :(得分:0)

它不是javascript,而是一个jquery ajax,因此请包括一个jquery库。 并像这样更改您的功能

语法以传递诸如

之类的值
  

data:'{“ key”:'+ value +',“ key”:“ value”}',

  

data =“ key =” +值

  

数据:JSON.stringify({键:值,键:值}),

 function on(logged_user) {

        var dataString = "logged_user=" + logged_user

        $.ajax({
            type: "POST",
            url: "update_stats.php",
            data: dataString,
            cache: false,
            success: function(result) {
                    alert(result)
            }
        })
    }

答案 2 :(得分:0)

只需尝试:

function on(logged_user) {
alert(logged_user);

$.ajax({
    type : 'POST', 
    url  : update_stats.php,
    data : logged_user,
    dataType : 'json', 
    encode : true
});
}

答案 3 :(得分:0)

您需要以键-值格式传递数据,才能通过php中的$ _POST,$ _ GET和$ _REQUEST数组变量进行访问。

data: {'logged_user' : data: logged_user}

您可以访问原始输入(例如JSON数据或文本数据),而这些输入不是键值格式,则可以使用file_get_contents(“ php:// input”)来访问数据。