JQuery Ajax returning bool(false)


JQuery Ajax returning bool(false)

我一直在研究与我的问题相关的其他问题,但似乎没有一个与我的具体情况相对应。我正在尝试创建一个javascript变量,我将使用Ajax将其POST到代码中的PHP变量中。在希望正确设置变量后,我尝试POST和var_dump,但结果不是我所希望的"0",而是一个令人沮丧的bool(false)。我读到这可能是url的问题(因为我从同一个文件POST),或者可能是与向Ajax请求传输数据有关的其他问题,尽管我还无法解决这个问题。控制台中的数据测试也没有显示任何结果,所以我不得不在这里询问。感谢您的帮助或指导。

Javascript

jQuery(document).ready(function(){var offset = parseInt("0");
        $.ajax({url: 'index.php', type: 'POST', data: offset, success:function(data){return data;}});
    });

PHP

<?php var_dump(isset($_POST['offset']));

添加一个名为offfestindex

$.ajax({
    url: 'index.php', 
    type: 'POST', 
    data: {offset:offset}, 
    success:function(data){
        return data;
    }
});

您可以尝试使用:

jQuery(document).ready(function(){
    $.ajax({url: 'index.php', type: 'POST', data: {offset: parseInt("0")}, success:function(data){return data;}});
});

我对PHP并不完全熟悉,但在您的javascript代码中,数据应该是Ajax文章的字典。类似于{‘offset’:0}

您的问题是在php中使用var_dump
字面上返回字符串:"bool(true)"

请改用var_export

代替:

<?php var_dump(isset($_POST['offset'])); ?>

用途:

<?php var_export(isset($_POST['offset'])); ?>

var_export将输出值的字符串表示,而不是var_dump返回的类型/值组合。


如果你只想返回公布的价值,可以这样做:

<?php var_export($_POST['offset']); ?>

或者:

<?php echo json_encode($_POST['offset']); ?>

请记住,您需要将数据正确地传递给post

data: { offset: offset }

代替:

data: offset
Js:
var offset = parseInt("0");
$.ajax({url: 'index.php', type: 'POST', data:{offset: offset},success:function(data){alert(data.offset);}});

php:

<?php echo json_encode(array('offset'=>isset($_POST['offset'])));

您应该为偏移量变量命名因此,将数据参数更改为JSON格式:

$.ajax({url: 'index.php', type: 'POST', data:{ 'offset': offset},success:function(data){return data;}});