Newsgroup: it.comp.lang.javascript
Titolo: Un piccolo aiuto

Ciao a tutti,
nello sviluppo del mio sito, ho implementato questa funzione abbastanza
semplice:
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.
Il problema è che aggiungendo i nuovi parametri non mi funziona più, mentre
col primo parametro soltanto si. Ho provato ad analizzare passo passo se mi
ero scordato qualcosa e non sono venuto a capo, sarà forse per la stanchezza
boh, chiedevo a voi la cortesia di controllarmela, sicuramente ci sarà un
errore sintattico che mi sfugge.
Ringrazio in anticipo chi mi può dedicare due minutini.
Cordialmente, Cooper.
-- 
------------------------------------
BlueWare di Impastato Marcello
 [web] 
http://www.blueware.it
 [msn] 
coo...@blueware.it
 [icq] 146781935
 [Irc] 
http://www.italchat.it

Boh, io non vedo errori (a parte quell'accountName al posto di accountType,
ma non penso sia questo il tuo problema)
Che errore restituisce?

 ha scritto nel messaggio
news:bgdtg1$ni00a$1...@ID-147253.news.uni-berlin.de...

Non mi prende la funzione,  la chiamata alla funzione è cosi definita (nel
blocco select):
                                                                  <?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>
ovviamente incluso all'interno di un campo form,  dove i valori delle
variabili, sono assegnati a priori (tutti quanti).
Grazie ancora per l'aiuto.


Quindi il problema sembrerebbe di php...
Mi spiace, so nulla di php; mi sembrava di ricordare che non serve chiudere
e riaprire le virgolette perché assegna comunque il valore a $variabile,
però però so veramente poco e quindi attendiamo gli altri...

 ha scritto nel messaggio
news:bgdv5a$ntog0$1...@ID-147253.news.uni-berlin.de...

Ok, magari nel frattempo posto anche sul newsgroup di php, vediamo cosa mi
sanno dire loro, però mi sembra strano, perchè di solito in DW se c'è un
errore sintattico in php,  blocca il caricamento della pagina,  o cmq non
carica dove si verifica l'errore, e invece non mi crea nessuno di questi
problemi.


Ci sono dei parametri di tipo numerico?

Prova nella funzione JavaScript a scrivere "parseInt(value)" al posto di
"value"; credo infatti che sia un problema di concatenazione (tenta di
considerare le stringhe come numeri perchè value è di tipo numerico!).
Fammi sapere.
Ciao.


Si, ci sono, diciamo che in prevalenza sono tutti numerici ad eccezione di:
accountName, accountType, domainName,  isOffer.
Li tratto come stringa, perchè devono essere inseriti all'interno di una url
e quindi nella pagina a cui vanno trasferiti vengono richiamati con $_GET
Cooper.



Value, è il nome di una variabile, è vero che contiene un numero, però
questo lo tratto come stringa. Considera che se rimuovo tutti i parametri,
lasciando solo quello con value, la function, mi funziona correttamente :(
Cooper.


 >
Ho provato anche come hai suggerito, ma niente :(
Cioč, in pratica tutto viene caricato etc, quando clicco su una voce della
select, di norma avrebbe dovuto caricarmi la pagina relativa, e invece non
prende, come se non facesse nessuna azione.


In alternativa invece che usare parseInt per tutti i parametri (in
JavaScript) puoi modificare il codice php in questo modo:
<?php
print ' <select name="select" onChange="changePage(this.selectedIndex, \'' .
$value . '\', \'' . $accountName . '\', \'' . $accountType . '\', \'' .
$domainName . '\',
\'' . $webSize . '\',  \'' . $emailNumber . '\',  \'' . $emailSize . \'',
\'' .
$pageNumber . '\',  \'' . $updateNumber . '\',  \'' . $isOffer . '\')">';
?>
Però per quanto riguarda this.selectedIndex quello finisce comunque come
numero... quindi per quello devi comunque usare parseInt nella funzione
JavaScript...
Spero di essere stato chiaro...
Ciao

Perché non vedi cosa ha restituito nel browser?

cosa ti viene visualizzato se nella funzione javascript sostituisci il tuo
codice con il seguente?
alert((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);
Cosa ti visualizza l'alert?


Ricopiando il tuo codice all'interno della funzione ed eseguendo, l'alert
non viene visualizzato, ciň mi lascia supporre che il richiamo della
funzione non avviene a seguito di un blocco alla linea in cui viene
richiamata...
Provo col suggerimento di Andrea, vediamo se riesco a risolvere modificando
l'attuale linea con la sua...
.......fatto ma nulla, anzi non parte completamente.
Ho provato a riscrivere cmq questa linea come:
  <?php print " <select name=\"select\"
onChange=\"changePage(this.selectedIndex, '$accountName', '$accountType',
'$domainName', $webSize, $emailNumber, $emailSize, $pageNumber,
$updateNumber, '$isOffer')\">"; ?>
e produce il seguente output:
   <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';
che credo sia stavolta quello corretto, mmmm perň.... alla funzione
changePage non arriva... :( Cosa posso fare?


Se usi Mozilla apri la console JavaScript, con IE devi scaricarti il
debugger dal sito Microsoft; comunque con uno strumento tipo questi due
dovresti essere in grado di vedere l'errore JavaScript che ti succede...