Newsgroup: it.comp.www.php
Titolo: Un piccolo aiuto

Ciao ragazzi,
potreste gentilmente dirmi se c'è qualche errore nella riga che segue:
<?php
print ' <select name="select" onChange="changePage(this.selectedIndex, ' .
$value . ', ' . $accountName . ', ' . $accountType . ', ' . $domainName . ',
' . $webSize . ',  ' . $emailNumber . ',  ' . $emailSize . ',  ' .
$pageNumber . ',  ' . $updateNumber . ',  ' . $isOffer . ')">'; ?>
<option value="0" selected>Azienda</option>
<option value="1">Privato</option>
</select>
che viene inserita all'interno di una form. Sostanzialmente lo script che
richiama, non contiene errore, per cui è stato ipotizzato un errore
sintattico sulla prima riga, qualcuno può darmi una mano che non riesco a
venirne a capo?
Per completezza, lo script che viene richiamato è quello riportato qui
sotto:
function changePage(i, value, accountName, accountType, domainName, webSize,
emailNumber, emailSize, pageNumber, updateNumber, isOffer) {
   location.href = (i==1) ?
'private.php?value='+value+'&accountName='+accountName+'&accountType='+accou
ntName+'&domainName='+domainName+'&webSize='+webSize+'&emailNumber='+emailNu
mber+'&emailSize='+emailSize+'&pageNumber='+pageNumber+'&updateNumber='+upda
teNumber+'&isOffer='+isOffer :
'business.php?value='+value+'&accountName='+accountName+'&accountType='+acco
untName+'&domainName='+domainName+'&webSize='+webSize+'&emailNumber='+emailN
umber+'&emailSize='+emailSize+'&pageNumber='+pageNumber+'&updateNumber='+upd
ateNumber+'&isOffer='+isOffer
}
la quale si occupa di passare alla pagina che richiama i valori dati in
ingresso.
-- 
------------------------------------
BlueWare di Impastato Marcello
 [web] 
http://www.blueware.it
 [msn] 
coo...@blueware.it
 [icq] 146781935
 [Irc] 
http://www.italchat.it


Forse l'errore e' che quando passi dei valori di tipo stringa, in javascript
(ma anche in tanti altri linguaggi), devono essere racchiusi tra virgolette
Quella print produrra' del codice tipo questo:
 <select name="select" onChange="changePage(this.selectedIndex, 1, pippo, 0,
mydominio.it
,...)">
dove:
 $value = 1
 $accountName = "pippo"
 $accountType = 0  (boh! suppongo sia un numero)
 $domainName = "
mydominio.it
"
 ho messo i puntini (...) per gli altri parametri
mentre dovresti aggiungere le virgolette o gli apici per i parametri di tipo
stringa.
Dovresti quindi ottenere:
 <select name="select" onChange="changePage(this.selectedIndex, 1, 'pippo',
0, '
mydominio.it
',...)">
Quindi la print diventa qualcosa tipo:
<?php
print ' <select name="select" onChange="changePage(this.selectedIndex,
$value,
 \'$accountName\', $accountType, \'$domainName\', ... )">'; ?>
dove ho messo i puntini (...) per gli altri parametri.
Ciao,
Ema

 </select>
Hai provato a verificare la stringa HTML che salta fuori?
Ossia hai letto il codice HTML sul browser?
Spesso aiuta a capire i problemi.
Il tuo potrebbe essere un problema di apici.
Ciao
Marco


Ok, provo a seguire i vostri suggerimenti, grazie a entrambi :)
Cooper



Partendo dal presupposto che il problema fosse di apici, ho provato a
riscrivere il tutto nel modo seguente:
 <?php print " <select name=\"select\"
onChange=\"changePage(this.selectedIndex, '$accountName', '$accountType',
'$domainName', $webSize, $emailNumber, $emailSize, $pageNumber,
$updateNumber, '$isOffer')\">"; ?>
in output, dal browser ottengo qualcosa del tipo:
 <select name="select" onChange="changePage(this.selectedIndex, 'Pippo',
'New', '
pippo.it
', 30, 5, 5, 1, 2, 'false')">
supponendo che:
$accountName = 'Pippo';
$accountType = 'New';
$domainName   = '
pippo.it
';
$webSize      = 30;
$emailNumber  = 5;
$emailSize    = 5;
$pageNumber  = 1;
$updateNumber = 2;
$isOffer = 'false';
e qui mi sembra che i parametri siano passati correttamente, se non sbaglio,
tuttavia il problema continua a persistere, nel senso che la function:
changePage, non svolge il suo lavoro.
Per completezza, te la reincollo:
function changePage(i, value, accountName, accountType, domainName, webSize,
emailNumber, emailSize, pageNumber, updateNumber, isOffer) {
   location.href = (i==1) ?
'private.php?value='+parseInt(value)+'&accountName='+accountName+'&accountTy
pe='+accountName+'&domainName='+domainName+'&webSize='+webSize+'&emailNumber
='+emailNumber+'&emailSize='+emailSize+'&pageNumber='+pageNumber+'&updateNum
ber='+updateNumber+'&isOffer='+isOffer :
'business.php?value='+value+'&accountName='+accountName+'&accountType='+acco
untName+'&domainName='+domainName+'&webSize='+webSize+'&emailNumber='+emailN
umber+'&emailSize='+emailSize+'&pageNumber='+pageNumber+'&updateNumber='+upd
ateNumber+'&isOffer='+isOffer;
}
Ti ringrazio nuovamente per l'aiuto.
Cooper.



Un altro po' di debug. Fai cosi':
invece che
location.href = (i==1) ? ... : ...
metti l'indirizzo di destinazione in una variabile; poi stampi la variabile
(magari in una textbox) e vedi se viene creata correttamente.
ipdest = (i==1) ? ... : ...
document.myform.txt_debug.value = ipdest;
// location.href = ipdest;
C'e' anche da ricordarsi, quando si creano gli indirizzi al volo di
sostituire i caratteri non alfanumerici con le relative sequenze di escape.
Per questo ci sono le relative funzioni js, ovviamente.
Continua con le prove, e facci sapere.
Ciao.
Ema

 'New', '
pippo.it
', 30, 5, 5, 1, 2, 'false')">
Questo è già meglio.
Il file che contiene il codice js è incluso correttamente?
Prova con: onChange="javascript:changePage()...".
Hai verificato che this.selectedIndex funzioni correttamente?
Quando fai la ridirezione, prova ad usare:
this.location.href
anzichè il solo location.
Altro non mi viene in mente.
Ciao
Marco