Newsgroup: it.comp.lang.javascript
Titolo: Caratteri particolari prima di "apostrofo"

Ciao a tutti io ho un array del tipo
var abruzzoArray =  new Array("('Seleziona una provincia','',true,true)",
"('Chieti')",
"('LAquila')",
"('Pescara')",
"('Teramo')");
e vorrei sapere quale carattere devo mettere prima dell'apostrofo di
L'Aquila in modo da vederlo come testo e non come apice e di conseguenza non
creare casini nella definizione della variablile.
Io conosco il PHP e so che li si usa il backslash ( \') ma qui non funziona
:(
ciao

 :(
Funziona anche qui, nel medesimo modo, guarda:
<script>
	alert('L\'Aquila');
</script>
Il problema quindi non sta nella definizione della variabile in se', ma 
nel come viene poi riutilizzata nel codice. Probabilmente vi sono altri 
apici/doppi apici con il quale fa casino.
-- 
C'ya,
  ZER0 :: coder.gfxer.webDesigner();
"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)

Avevo gią provato con il backslash ma non funziona. Questo č uno script per
la generazione di una select delle provincia in base alla regione scelta
scaricato da internet e modificato. Se metto il backslash la selezione mi si
ferma alla provincia precedente.
Non riesco a trovare dove si crea il problema.
<!-- Begin
var abruzzoArray =  new Array("('Seleziona una provincia','',true,true)",
"('Chieti')",
"('LAquila')",
"('Pescara')",
"('Teramo')");
function populateprovincia(inForm,selected) {
    var selectedArray = eval(selected + "Array");
    while (selectedArray.length < inForm.provincia.options.length) {
        inForm.provincia.options[(inForm.provincia.options.length - 1)] =
null;
    }
    for (var i=0; i < selectedArray.length; i++) {
        eval("inForm.provincia.options[i]=" + "new Option" +
selectedArray[i]);
    }
    if (inForm.regione.options[0].value == '') {
        inForm.regione.options[0]= null;
        if ( navigator.appName == 'Netscape') {
            if (parseInt(navigator.appVersion) < 4) {
                window.history.go(0);
            }
            else { 
                if (navigator.platform == 'Win32' || navigator.platform ==
'Win16') {
                    window.history.go(0);
                }
             }
          }
   }
}
function populatestate(inForm,selected) {
    if(inForm.provincia.options[0].text == 'Seleziona una provincia') {
        inForm.provincia.options[0]= null;
    }
}
// End --> 
.
.
.
.
            <select name="regione" style="width:200px;"
onChange="populateprovincia(document.globe,document.globe.regione.options[do
cument.globe.regione.selectedIndex].value)">
            <option selected value=''>Seleziona una regione</option>
            .
            .
            <option value='abruzzo'>Abruzzo</option>
            .
            .
            </select>
.
.
.
            <select name="provincia" style="width:200px;"
onChange="populatestate(document.globe,document.globe.provincia.options[docu
ment.globe.provincia.selectedIndex].text)">
            <option value="">Seleziona una provincia</option>
            <option value="">--------------------</option>
            </select>

 "('Teramo')");
Perche' nel "primo" passaggio \\' ti viene letto come \' e nel secondo 
ti visualizza l'apice.
Mentre prima nel primo passaggio ti veniva letto direttamente \' e 
quindi nel secondo leggeva direttamente ('L'Aquila') facendoti casino.
In ogni caso ti sconsiglio un approccio del genere. Ti conviene di 
piu' usare:
var regionArray={};
regionArray["abruzzo"]=["Chieti", "L'Aquila","Pescara","Teramo"];
etc.
E poi quando devi scegliere l'array corretto:
  var selectedArray = regionArray[selected]
Idem per il ciclo:
inForm.provincia.options[0]=new Option("Seleziona una provincia","");
for (var i=1; i < selectedArray.length; i++) {
	inForm.provincia.options[i]=new Option (selectedArray
[i],selectedArray[i]);
}
etc.
In realta' e' ancora piu' ottimizzabile, ma non volevo stravolgerti 
eventualmente troppo il codice, solo mostrarti un'alternativa valida.
