2013-07-11 3 views
0

Supposons que je suis transmettre des informations de façon dynamique à une variable dans une URL comme comme indiqué ci-dessous:Javascript et insertion variable dynamique

<script> 

var ORDER = 200; 
var QUANTITY = 1; 
var EXTRA = [200,300,400]; 

var tag = document.write('<scr'+'ipt language="JavaScript" src="http://test.com/test/order.' + ORDER + '/quantity.' + QUANTITY"></scr' + 'ipt>'); 

</script> 

Disons que je veux transmettre toutes les données dans le tableau EXTRA ... comment ferais-je cela?

J'essaie d'obtenir une URL qui ressemble à ceci après il est écrit à la page:

http://test.com/test/order.200/quantity.1/extra.200/extra.300/extra.400 

(En passant les numéros au même paramètre supplémentaire dans l'URL est intentionnel, je en ai besoin pour être passé dans des instances séparées mais à la même variable)

Je sais que je peux utiliser une boucle for pour parcourir le tableau .. comment puis-je conserver dynamiquement les nombres dans le tableau EXTRA à l'URL comme dans l'exemple au dessus?

Un truc pareil devrait-il fonctionner?

for (i = 0; i < EXTRA.LENGTH; i++){ 
    tag.append(EXTRA[i]); 
} 

S'il vous plaît conseiller si vous le pouvez,

Merci pour votre aide!

+0

Cher ami, je pense que votre problème est un autre. Pourquoi n'utilisez-vous pas AJAX (par exemple, jQuery $ .get) pour envoyer vos paramètres et obtenir ce dont vous avez besoin? – aldux

+0

Créez votre chaîne avant de la passer à 'document.write', puis faites une concaténation de chaîne normale. Il n'y a pas de méthode '.append()'. –

+1

Conseils: 1. http://stackoverflow.com/questions/802854/why-is-document-write-considered-a-bad-practice, 2. minuscules ou cameCase pour les variables, majuscules représente CONSTANTS. 3. Double-vérifier la coloration syntaxique dans la concaténation. 4. J'ai oublié de déclarer «je». 5. Encodez vos URL. – elclanrs

Répondre

5

Cela ressemble à une question sur l'association d'éléments dans un Array. JavaScript a Array.prototype.join à cet effet, donc vous voulez faire

var str = 'foo'; 
if (EXTRA.length) str += '/extra.' + EXTRA.join('/extra.'); 
str; // "foo/extra.200/extra.300/extra.400" 
Questions connexes