你好,有人可以解释为什么ajax总是返回JSON的长度吗?
$(document).ready(function () {
$("#addElem").click(function (e) {
e.preventDefault();
var val1 = $('#addname').val();
var val2 = $ ('#addprice').val();
$.ajax({
type: 'POST',
url: 'server.php',
dataType:"json",
data: {name: val1, action:'set', price: val2},
success: function( data ){
var ident = $('#text').append( data );
}
}).done(function(data) {
alert(data)
});
});
});
编辑: 这是一个server.php https://jsfiddle.net/nvy2cavz/
解决 这不是我的错。这是一个Server.php交易。 SERVER.php总是以这种方式工作。 谢谢你
答案 0 :(得分:2)
您的PHP代码返回items
数组的长度。这就是你获得的数据。它不是JSON的长度,而是服务器端代码返回的长度(数字)。
// rest of the code
if($_POST['action'] == 'set') {
if(isset($_POST['name']) && isset($_POST['price'])){
$item = [
'name' => $_POST['name'],
'price' => $_POST['price']
];
$items[] = $item;
file_put_contents('items.json', json_encode($items));
$return = json_encode(count($items)-1); //<<<<<<<<<<<<< Change here if you want
} else {
$return = json_encode(['error' => 'Wrong item details']);
}
}
// rest of the code
答案 1 :(得分:2)
$.append
函数接收(htmlString or Element or Text or Array or jQuery
)。
如何使用json
对象$.append
? data
函数中的success
对象是javascript对象。我认为问题隐藏在这里。