Newsgroup: it.comp.lang.javascript
Titolo: Passaggio di stringhe tramite url

Ciao a tutti,
oltre al problema citato al post precedente in cui spero di poter avere una
risposta quanto prima, mi trovo innanzi a un secondo problema (almeno tale
per le mie conoscenze limitate di JS)...
...il problema dunque è questo:
    Nell'ambito di un form, attraverso una TEXT inserisco una stringa...
tale stringa può contenere anche caratteri particolari (es: virgole)...
insomma qualcosa del tipo:  "Giuseppe Anselmo, Pippo Caio, Maria Chi"....
....quando effettuo il passaggio attraverso il metodo GET la stringa viene
passata attraverso l'url e posso accedere a essa usando il sistema ESCAPE...
il problema è.... che se passo la stringa:
      "Giuseppe Anselmo, Pippo Caio, Maria Chi"
ottengo qualcosa del tipo:
     "Giuseppe+Anselmo"   <- come primo parametro
     "Pippo+Caio" <--- come secondo parametro
     "Maria+Chi" <--- come terzo parametro
il mio scopo invece è quello: 1) di eliminare il '+' e... 2) avere tutta la
stringa in unico parametro... esattamente come viene passata in input.
La riga di codice attraverso quale passo la stringa da estrarre è la
seguente:
        var aa =
unescape(self.location.search.substr(1)).split("&").toString().split("=").to
String().split(",");
da cui poi facendo aa[1], aa[3] etc etc vado estraendo i vari parametri....
cosa appunto che sfasa quando incontra una ',' (virgola)...
...come dovrei quindi modificare questa per ottenere il risultato che cerco?
Ringrazio anticipatamente chi risponderà anche a questa mia seconda domanda.
Cordialmente, Cooper.
--
------------------------------------
Impastato Marcello
 [Web] 
http://www.blueware.it
 [Email] 
coo...@blueware.it
 [icq] 146781935
 [Irc] 
irc.azzurra.org
 - #chatlandia, #blueware

 Cordialmente, Cooper.
personalmente preferisco un approccio diverso:
separo la query string e la splitto in coppie nome/valore
var queryString = location.search.substring(1),
      valuePairs = queryString.split('&')
poi, ciclando tra gli elementi del vettore, costruisco un array associativo
"à la PHP", in questo modo
var $_GET=new Object();
for (var i = 0; i < valuePairs.length; i++)
    $_GET[valuePairs[i].split('=')[0]] =
unescape(valuePairs[i].split('=')[1]).replace(/\+/g, ' ');
cosi' a partire dalla queryString
'param=Mario+Rossi%2C+Giuseppe+Verdi%2C+Irene+Bianchi&code=1231672&uID=63613
7681723'
ottengo dapprima l'array
['param=Mario+Rossi%2C+Giuseppe+Verdi%2C+Irene+Bianchi', 'code=1231672',
'uID=636137681723']
poi, ciclando sui suoi elementi, splittandoli in nome=valore, e dando un
unescape al valore, ottengo l'array associativo
{param: 'Mario Rossi, Giuseppe Verdi, Irene Bianchi', code: 1221672, uID:
636137681723}
--
artemis.alpeia

 >
Ti ringrazio per la risposta, ma anzichè finire sul php, volevo una
soluzione per JS........ sennò avrei chiesto sul newsgroup di PHP.... no? :P
In JS come risolvo il problema, ovvero cosa dovrei sostituire al posto di
quella riga?


 quella riga?
in fatti quello _e'_ javascript -_-#
mi riferivo al PHP esclusivamente per il nome della variabile ($_GET) che in
PHP oltretutto viene creata in automatico
--
artemis.alpeia
--------------------------------
Inviato via 
http://usenet.libero.it


Ciao, ok grazie, ora mi resta da capire una cosa, dunque dal codice che hai
postato io ho:
 var queryString = location.search.substring(1);
 var valuePairs  = queryString.split('&');
 var cc=new Object();
 for (var i = 0; i < valuePairs.length; i++) cc[valuePairs[i].split('=')[0]]
= unescape(valuePairs[i].split('=')[1]).replace(/\+/g, ' ');
 var Cognome = String(cc[1]);
 var Nome      = String(cc[2]);
Non capisco come mai le variabili Cognome e Nome in questo caso assumono
valore:  UNDEFINED? sebbene la stringa risulti passata correttamente... dove
sbaglio?
Ringrazio anticipatamente per la risposta,
Cooper.
PS: A livello sintattico, non da errori di alcun tipo. Ho provato anche
rimuovendo "String" e lasciando solo cc[...] ma stesso risultato.

 come viene passata in input.
beh allora bastava specificarlo prima non credi?
--
artemis.alpeia


Ti ringrazio tantissimo, funziona tutto correttamente :) La soluzione che mi
hai dato č anche migliore rispetto a quella da cui ero partito io :)
Grazie ancora, Cooper.
