0

How to post multiple data using ajax? i want to post input value and attr both. Here is an example :

$('.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" />
Zakaria Acharki
  • 66,747
  • 15
  • 75
  • 101
MAHAR
  • 5
  • 1
  • 6

3 Answers3

1

As documented, "data" has mixed type (Type: PlainObject or String or Array). So you can assign array or object to data property.

Try following;

$('.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');
                    }
            });
  });
Tuğca Eker
  • 1,493
  • 13
  • 20
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');
                }
        });
});
Abhay
  • 6,410
  • 4
  • 26
  • 34
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({
            type: 'POST',
            url: 'index.php',
            data: data,
            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" />
Daniel Kmak
  • 18,164
  • 7
  • 66
  • 89