2010-03-22 4 views
5

Voici l'histoire ... J'ai une fonction jQuery qui fait quelque chose, cette fonction est référencée très régulièrement. L'un des paramètres d'entrée est un tableau, ces données de tableau est codé en dur et donc je veux transmettre les données comme ceci: (voici comment je le ferais en utilisant PHP)Passer le tableau de données à la fonction jQuery

myFunction(Array("url"=>"abc.com","example"=>"hello_world")); 

Au lieu de

$arr=Array("url"=>"abc.com","example"=>"hello_world"); 
myFunction($arr); 

Alors, comment puis-je y parvenir avec ma fonction jQuery, je veux que ce soit un seul doublure si possible.

Modifier

Peut-être que mon exemple était un peu trompeur, jetez un oeil à l'index de tableau à nouveau. Le tableau que j'envoie est un tableau associatif.

En bref, je ne veux pas de variables avant ma fonction, je veux que le tableau soit codé en dur directement dans le paramètre de la fonction comme suggéré dans le premier exemple que j'ai donné.

:-)

Répondre

7

Je relis votre question éditée, et votre réponse est objet javascript, un peu comme des dictionnaires ou hash dans d'autres langues:

{ first_key: '1', second_key: '2', third_key: '3' }; 

Et pour votre rappel, juste passer dans un littéral déclaré sur place:

myFunction({ first_key: '1', second_key: '2', third_key: '3'}); 
1

Voici par exemple si c'est ce que vous entendez:

var arr = [ "one", "two", "three", "four", "five" ]; 

    jQuery.each(arr, function() { 
      $("#" + this).text("Mine is " + this + "."); 
      return (this != "three"); // will stop running after "three" 
     }); 

//Source http://api.jquery.com/jQuery.each/ 
+0

Merci pour votre réponse, malheureusement je pense que ma question était légèrement trompeuse et donc ce n'est pas pertinent à mon problème. Merci quand même :) :) –

0

Je ne suis pas tout à fait sûr de ce que vous demandez ici, mais je vais vous donner répondre à un coup de feu . Si vous faites référence à ce tableau dans plus d'un endroit, alors il est probablement préférable de le définir comme une première constante:

ARRAY = ['a', 'b', 'c'] 
    myFunction(ARRAY); 
    myFunction2(ARRAY); 

Si votre référencement ne ce tableau codé en dur une fois, puis passer dans la fonction jQuery un littéral de tableau déclaré dans l'appel de fonction:

myFunction(['a', 'b', 'c']); 
+0

Bonjour, votre dernier exemple est presque exactement ce que je veux faire, je ne veux pas de variables avant ma fonction, mais il doit s'agir d'un tableau associatif.Merci encore :) –

1

Regardez dans la mise en forme JSON pour votre tableau ...

somefunction({'key1':'value', 'key2':'value'}); 
+0

Merci pour votre réponse, j'ai essayé ce 'func (['key1': 'value', 'key2': 'value']);' mais cette erreur 'manque] après la liste des éléments [Break on cette erreur] getElementContents (['key1': 'value', 'key2': 'value']); ': S –

+1

Je l'ai réparé, j'avais les mauvais supports – David

+0

Cela a fonctionné très bien mais bobthabuilda est arrivé en premier. Un grand merci pour votre aide :) –

0

JavaScript ne possède pas de tableaux associatifs. Vous pouvez probablement obtenir ce que vous demandez avec une combinaison de réseaux réguliers et objets:

var foo = [ 
    { 
     url: "abc.com", 
     example: "hello_world" 
    }, 
    { 
     url: "example.net", 
     example: "example" 
    } 
]; 

Il est un format de données JSON appelé qui utilise la syntaxe JavaScript. Puisque vous semblez utiliser PHP et que PHP a des fonctions intégrées pour générer du JSON (trouver json_encode() dans le manuel de PHP) cela peut être une tâche très simple: encoder votre structure de données PHP en JSON et l'utiliser tel quel depuis JavaScript.

Questions connexes