Ajax总是返回JSON的长度

时间:2017-01-21 08:26:03

标签: jquery ajax

你好,有人可以解释为什么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总是以这种方式工作。 谢谢你

2 个答案:

答案 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对象$.appenddata函数中的success对象是javascript对象。我认为问题隐藏在这里。