70 votes

comment créer un tableau en jquery ?

$(document).ready(function() {
  $("a").click(function() {
    $("#results").load("jquery-routing.php", 
       { pageNo: $(this).text(), sortBy: $("#sortBy").val()} 
    );
    return false;
  });
}); 

Comment créer un tableau dans jQuery et utiliser ce tableau au lieu de { pageNo: $(this).text(), sortBy: $("#sortBy").val()}

0 votes

Pouvez-vous préciser ? Je pense que personne n'a vraiment compris ce que vous essayez de demander.

0 votes

Jquery n'est pas un langage. Vous devriez plutôt demander comment faire ceci en javascript.

129voto

ojrac Points 6897

Quelques réflexions :

  • jQuery est une bibliothèque JavaScript, pas un langage. Ainsi, les tableaux JavaScript ressemblent à quelque chose comme ça :

    var someNumbers = [1, 2, 3, 4, 5];
  • { pageNo: $(this).text(), sortBy: $("#sortBy").val()} est une carte de la clé à la valeur. Si vous voulez un tableau des clés ou des valeurs, vous pouvez faire quelque chose comme ceci :

    var keys = [];
    var values = [];
    
    var object = { pageNo: $(this).text(), sortBy: $("#sortBy").val()};
    $.each(object, function(key, value) {
        keys.push(key);
        values.push(value);
    });
  • En JavaScript, les objets sont incroyablement flexibles. Si vous voulez créer un objet {foo: 1} tous les travaux suivants :

    var obj = {foo: 1};
    
    var obj = {};
    obj['foo'] = 1;
    
    var obj = {};
    obj.foo = 1;

Pour conclure, est-ce que tu veux ça ?

var data = {};
// either way of changing data will work:
data.pageNo = $(this).text();
data['sortBy'] = $("#sortBy").val();

$("#results").load("jquery-routing.php", data);

0 votes

Merci pour toute l'aide apportée, je vais rendre ma prochaine question simple, Comment puis-je passer deux variables à mon jquery ? I want to pass PageNo and SortBy ... <a href="routing.php?p=2&SortBy=error">2</a> ??

0 votes

D'après ce que j'ai compris : load(url, data) frappe l'URL et envoie les données en tant que POST. Si vous vouliez atteindre routing.php?p=2&sortBy=error, vous devriez ajouter cela à l'URL ("routing.php?p=" + pageNo + "&sortBy=" + sortBy). Cela, ou faire en sorte que votre script PHP lise depuis $_POST ou $_REQUEST au lieu de $_GET.

1 votes

Il semble qu'ici var data = {}; doivent changer pour var data = [];

28voto

deceze Points 200115

Vous confondez peut-être les tableaux Javascript et les tableaux PHP. En PHP, les tableaux sont très flexibles. Ils peuvent être indexés numériquement ou associatifs, ou même mixtes.

array('Item 1', 'Item 2', 'Items 3')  // numerically indexed array
array('first' => 'Item 1', 'second' => 'Item 2')  // associative array
array('first' => 'Item 1', 'Item 2', 'third' => 'Item 3')

D'autres langues considèrent ces deux éléments comme des choses différentes, dont le Javascript. Un tableau en Javascript est toujours indexé numériquement :

['Item 1', 'Item 2', 'Item 3']  // array (numerically indexed)

Un "tableau associatif", également appelé Hash ou Map, techniquement un objet en Javascript*, fonctionne comme suit :

{ first : 'Item 1', second : 'Item 2' }  // object (a.k.a. "associative array")

Ils ne sont pas interchangeables. Si vous avez besoin de "clés de tableau", vous devez utiliser un objet. Si vous ne le faites pas, vous créez un tableau.


* Techniquement tout est un objet en Javascript, veuillez mettre cela de côté pour cet argument ;)

0 votes

Liste de paramètres de la fonction flèche malformée

0 votes

Hein ? Ce n'est pas censé être du Javascript, si vous lisez attentivement

10voto

Matthew Flaschen Points 131723

Je ne comprends pas très bien ce que vous voulez dire. Peut-être :

<script type="text/javascript"> 
$(document).ready(function() {
  $("a").click(function() {
    var params = {};
    params['pageNo'] = $(this).text();
    params['sortBy'] = $("#sortBy").val();
    $("#results").load( "jquery-routing.php", params );
    return false;
  });
}); 
</script>

1 votes

Oui, mais il vient aussi de php, où les tableaux sont aussi des hachages... En JavaScript, ce n'est pas un "hash" non plus - c'est juste un objet. +1 - c'était aussi mon interprétation de la question...

2 votes

Je connais la différence entre les tableaux et les objets JavaScript. Cependant, il semble que le but réel de la question était de construire les paramètres de manière dynamique.

1voto

Shimmy Points 23393

Je n'utilise plus Jquery depuis un moment, mais vous cherchez peut-être ceci :

jQuery.makeArray(obj)

0voto

Srikar Doddi Points 10611

Voici un exemple que j'ai utilisé.

<script>
  $(document).ready(function(){
      var array =  $.makeArray(document.getElementsByTagName(“p”));
      array.reverse(); 
      $(array).appendTo(document.body);
  });
</script>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X