2010-03-22 9 views
5

Ecco la storia ... Ho una funzione jQuery che fa qualcosa, questa funzione è referenziata molto regolarmente. Uno dei parametri di ingresso è un array, questi dati array è difficile codificato e quindi voglio passare i dati in questo modo: (questo è come vorrei farlo utilizzando PHP)Passa la matrice di dati alla funzione jQuery

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

Invece di

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

Quindi, come ottengo ciò con la mia funzione jQuery, voglio che questa sia una fodera unica, se possibile.

Modifica

Forse il mio esempio era un po 'fuorviante, dare un'occhiata agli indici degli array di nuovo. L'array che sto inviando è un array associativo.

In breve non voglio nessuna variabile prima della mia funzione, voglio che l'array sia codificato direttamente nel parametro della funzione come suggerito nel primo esempio che ho dato.

:-)

risposta

7

ho riletto la tua domanda modificato, e la risposta è nella oggetto JavaScript, proprio come dizionari o hash in altre lingue:

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

E per il vostro richiamata, basta passarlo come un letterale dichiarato sul posto:

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

Ecco esempio, se è questo che vuoi dire:

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

Grazie per la risposta, purtroppo penso che la mia domanda sia leggermente fuorviante e quindi non è rilevante per il mio problema. Comunque, grazie comunque :) –

0

Non sono del tutto sicuro di quello che stai chiedendo qui, ma darò rispondere un colpo . Se stai riferimento a questa matrice in più di un posto, allora è probabilmente meglio definirlo come un primo costante:

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

Se il solo riferimento a questa matrice hard-coded una volta, poi passarlo alla funzione jQuery come un array letterale dichiarato nella funzione chiamata:

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

Salve, il tuo ultimo esempio è quasi esattamente quello che voglio fare, non voglio nessuna variabile prima della mia funzione, ma deve essere un array associativo.Grazie ancora :) –

1

sguardo nel formattazione JSON per l'array ...

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

Grazie per la tua risposta, ho provato questo 'func (['key1': 'value', 'key2': 'value']);' ma ottieni questo errore 'mancante] dopo la lista degli elementi [Break on questo errore] getElementContents (['key1': 'value', 'key2': 'value']); ': S –

+1

L'ho risolto, avevo le parentesi sbagliate – David

+0

Questo funzionava benissimo ma Bobthabuilda ci è arrivato prima. Molte grazie per il tuo aiuto :) –

0

JavaScript non ha array associativi. Probabilmente si può ottenere ciò che si sta chiedendo con una combinazione di array regolari e oggetti:

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

C'è una chiamata JSON formato di dati che utilizza la sintassi JavaScript. Dal momento che sembra che tu stia usando PHP e PHP hai incorporato funzioni per generare JSON (trova json_encode() nel manuale PHP) può essere un compito molto semplice: codifica la tua struttura di dati PHP come JSON e usala come da JavaScript.

Problemi correlati