2011-10-22 3 views
1

Comment obtenir les valeurs du tableau d'entrée username dans la variable jQuery users?Jquery input array form ajax

<input type='text' name='username[]' class='users' value='test1' /> 
    <input type='text' name='username[]' class='users' value='test2' /> 
    <input type='text' name='username[]' class='users' value='test3' /> 

<div class='submit'>Submit</div> 

    <script type="text/javascript"> 
    $(function() { 

     $('.submit').click(function() { 

      var users = 
     var dataString = 'users=' + users; 

      $.ajax({ 
      type:'POST', 
      url:'users.php', 
      data: dataString, 
      success: function() { 


       } 
      }); 
     }); 


    }); 
    </script> 

Répondre

8

Découvrez jQuery.serialize(). Cela devrait vous donner un tableau des noms d'utilisateurs.

var users = $('input:text.users').serialize(); 

Vous pouvez cependant être paresseux ou spécifique avec le sélecteur: .users, input.users, form .users serait tout le travail, ainsi que quelques autres.

Pour cet exemple:

// users = 
username[]=test1&username[]=test2&username[]=test3 

qui, en fonction de votre technologie côté serveur, se concrétisera à la demande comme un tableau de chaînes pour le « nom d'utilisateur » clé (PHP, par exemple).

1

Vous pouvez utiliser map pour obtenir un tableau:

// from inside the submit callback 
var users = $(this).find('.users').map(function(i, el) { 
    return el.value; 
}); 

Demo (courir avec la console ouverte): http://jsfiddle.net/ambiguous/w2RRW/

+0

merci, mais ce qui est 'i' et 'el' allusion? – user892134

+0

i = index, el = élément –

+0

@ user892134: Voir le commentaire d'Intersellar ou la documentation: http://api.jquery.com/map/, et essayez-vous d'obtenir un tableau ou une chaîne d'URL? Votre question et votre code disent des choses différentes. –

2
<script> 

     $(function() { 

      $('.submit').click(function() { 

       // Get data as array, ['Jon', 'Mike'] 
       var users = $('input[name="username[]"]').map(function(){ 
        return this.value; 
       }).get(); 

       $.ajax({ 
        type: 'POST', 
        url: 'users.php', 
        data: { 
         'username[]': users, 
         // other data 
        }, 
        success: function() { 

        } 
       }); 

      }); 

     }); 

    </script>