2010-10-11 4 views
2

Je transmets à cette fonction différents noms de champs à chaque appel. Je voudrais qu'il publie la valeur de chaîne interpolée de la variable field comme nom de la variable affichée. Par exemple, un poste peut avoirTableau avec noms de champs dynamiques

data: { 'shoppingCartContents' : cartrow, 'number' : number, 'foo' : value } 

mais chaque juste après a

data: { 'shoppingCartContents' : cartrow, 'number' : number, 'field' : value } 

même si field n'est pas entre guillemets.

function update_personalization(cartrow, number, field, value) { 
    $.ajax({ 
    type: 'POST', 
    url: 'updatePersonalization.php', 
    data: { 'shoppingCartContents' : cartrow, 'number' : number, field : value } 
    }); 
} 

Qu'est-ce que je fais mal?

Répondre

5

Vous devrez construire autrement l'objet:

data: (function() { 
    var rv = {shoppingCartContents: cartrow, number: number}; 
    rv[field] = value; 
    return rv; 
    })() 

Qu'est-ce qui ne fait construire l'objet que vous voulez passer « données » dans une petite fonction anonyme. La fonction initialise un objet simple avec les noms de champs statiques, puis ajoute le champ nommé dynamiquement dans une instruction distincte.

Ce n'est pas vraiment un "tableau", pour ce que ça vaut.

+0

Merci Pointy. Infiniment reconnaissant! – jerrygarciuh

Questions connexes