PDA

View Full Version : [JAVASCRIPT] nome funzione composta da variabili.


bohif
26-09-2010, 09:29
Salve a tutti o/
Ho la leggera impressione di aver provato a realizzare una cosa che non si può fare...però vorrei esserne certo per arrendermi e prendere un'altra via.

Il mio problema è questo:
ho una funzione javascript ( funzioneA() ) che al suo interno richiama un'altra funzione che però ha un nome che cambia grazie all'uso di php, quindi può essere funzioneB1 o B2 o B3 e così via.
Ora, per dire all'interno della funzioneA il nome attuale della funzioneB1/2/3.. ho pensato di utilizzare il value di un input hidden che cambia ogni volta come la funzioneB stessa; poi richiamare questo value come variabile "nomefunzione" (quindi var nomefunzione = document.getelementbyid("inputhidden").value; ) nella funzioneA().

A questo punto ho pensato felicemente che se scrivessi tipo
funzioneA() {
var nomefunzione = document.getelementbyid("inputhidden").value;
"funzioneB"+nomefunzione;
}


"funzioneB"+nomefunzione; l'avrebbe preso come nome della funzioneB che cambia e l'avrebbe fatta partire, ovviamente non funge.

C'è una sintassi particolare per compiere questo tipo di operazione o è impossibile?

D: help me please.

Ps. non ho costruito la funzione col php perché si tratta di un ciclo while, e voglio evitare di far caricare ancora più contenuti al browser.

gugoXX
26-09-2010, 10:06
chiama la funzione di cui ora sai il nome mediante
eval(" pippo() ");

Comunque se gia' hai php lato server, ti consiglierei di usarlo anche in questo caso, dato che non appesantisci, anzi snellisci il risultato finale lato client.

MEMon
26-09-2010, 17:25
Salve a tutti o/
Ho la leggera impressione di aver provato a realizzare una cosa che non si può fare...però vorrei esserne certo per arrendermi e prendere un'altra via.

Il mio problema è questo:
ho una funzione javascript ( funzioneA() ) che al suo interno richiama un'altra funzione che però ha un nome che cambia grazie all'uso di php, quindi può essere funzioneB1 o B2 o B3 e così via.
Ora, per dire all'interno della funzioneA il nome attuale della funzioneB1/2/3.. ho pensato di utilizzare il value di un input hidden che cambia ogni volta come la funzioneB stessa; poi richiamare questo value come variabile "nomefunzione" (quindi var nomefunzione = document.getelementbyid("inputhidden").value; ) nella funzioneA().

A questo punto ho pensato felicemente che se scrivessi tipo
funzioneA() {
var nomefunzione = document.getelementbyid("inputhidden").value;
"funzioneB"+nomefunzione;
}


"funzioneB"+nomefunzione; l'avrebbe preso come nome della funzioneB che cambia e l'avrebbe fatta partire, ovviamente non funge.

C'è una sintassi particolare per compiere questo tipo di operazione o è impossibile?

D: help me please.

Ps. non ho costruito la funzione col php perché si tratta di un ciclo while, e voglio evitare di far caricare ancora più contenuti al browser.


Se hai il nome della funzione come variabile php non basta che fai così?

<?php echo "funzioneB".nomefunzione."();"; ?>

Altrimenti usa eval, ma occhio che poi non è più debugabbile, se puoi evita.

Comunque se sei arrivato a questo punto è assolutamente sicuro che hai sbagliato a "progettare" il tuo sito/webapp.