我在使用 AJAX.Jquery 的 POST 方法传递变量时遇到问题
这是我的代码:
ajaxtest.php
<?php
$dir = $_POST['dir'];
$scaned = glob($dir."*",GLOB_ONLYDIR);
echo json_encode($scaned);
?>
ajaxtest.html
<html>
<head>
<script type="text/javascript" src="js/jquery.js"></script>
</head>
<script>
$(document).ready(function(){
$('button[type="button"]').click(function(){
var dir = 'gals/';
$.ajax({
url: "ajaxtest.php",
type: "POST",
data: dir,
success: function(results){
data = jQuery.parseJSON(results);
for (var i = 0; i < data.length ; i++) {
$('#buttonA').after('<br />'+data[i]+'<br />');
};
}
})
})
})
</script>
<body>
<br />
<button id="buttonA" type="button">Test button</button>
</body>
</html>
此代码无效。
但是这个可以:(但不是用 json)
$.post("ajaxtest.php", {dir:dir}, function(results){
var data = $.parseJSON(results);
for (var i = 0; i < data.length ; i++) {
$('#buttonA').after('<br />'+data[i]+'<br />');
}
})
为什么会这样?! 我的代码有什么问题?请指教! 非常感谢。
最佳答案
data
应具有以下格式:
data: {
'dir': dir
}
它对json不起作用,因为success参数名是错误的。不是根据回调里面的代码。
将其从 results
更改为 data
。
var dir = 'gals/';
$.ajax({
url: "ajaxtest.php",
type: "POST",
data: {'dir': dir},
success: function(data){
data = jQuery.parseJSON(data);
for (var i = 0; i < data.length ; i++) {
$('#buttonA').after('<br />'+data[i]+'<br />');
};
}
});
关于php - Jquery AJAX POST 没有将任何东西传递给 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13963340/