2016-08-02 92 views
0

如何使用ajax发布多个数据?我想发布输入valueattr两者。下面是一个例子:Ajax发布多个数据

$('.input[type=\'text\']').keyup(function(){   
 
    $.ajax({ 
 
    type: 'POST', 
 
    url: 'index.php', 
 
    data: $('.input[type=\'text\']'), 
 
    dataType: 'json', 
 
    success: function(json) { 
 
     alert('done'); 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" value="" attr="yes" />

回答

1

documented如, “数据” 具有混合的类型(类型:PlainObject或字符串或阵列)。因此,您可以将数组或对象分配给数据属性。

请尝试以下;

$('.input[type=\'text\']').keyup(function(){  
    var dataToPost = { 
        value: $(this).attr('attr'), 
        attr: $(this).val() 
        }; 
      $.ajax({ 
        type: 'POST', 
        url: 'index.php', 
        data: dataToPost, 
        dataType: 'json', 
        success: function(json) { 
           alert('done'); 
        } 
      }); 
    }); 
0
$('.input[type=\'text\']').keyup(function(){ 
var obj = {}; 
obj.val = $(this).val(); 
obj.attr = $(this).attr('attr'); 
$.ajax({ 
       type: 'POST', 
       url: 'index.php', 
       data: obj, 
       dataType: 'json', 
       success: function(json) { 
          alert('done'); 
       } 
     }); 
}); 
0

$('.input[type=\'text\']').keyup(function(){ 
 
      var data = new FormData(); 
 
      $el = $('.input[type=\'text\']'); 
 
      data.append('value', $el.val()); 
 
      data.append('attr', $el.attr('attr')); 
 
      $.ajax({ 
 
\t \t   type: 'POST', 
 
\t \t   url: 'index.php', 
 
\t \t   data: data, 
 
\t \t   dataType: 'json', 
 
\t \t \t  success: function(json) { 
 
           alert('done'); 
 
        } 
 
      }); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" value="" attr="yes" />