我一直在研究与我的问题相关的其他问题,但似乎没有一个与我的具体情况相对应。我正在尝试创建一个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']));
添加一个名为offfest
的index
$.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;}});