Salve,
è possibile visualizzare/utilizzare in uno js una variabile dichiarata in un codice JSP, o PHP, o ASP o quant'altro?
Se si, come?
Grazie![]()
Salve,
è possibile visualizzare/utilizzare in uno js una variabile dichiarata in un codice JSP, o PHP, o ASP o quant'altro?
Se si, come?
Grazie![]()
Gli uomini, non avendo potuto guarire la morte, la miseria, l'ignoranza, hanno risolto, per vivere felici, di non pensarci.
mmm, mi sa che non hai molto chiaro una cosa:
Javascript è un codice Client-Side, ovvero il codice viene scaricato dal browser (i file .js o le parti inserite in <script></script>) e poi eseguito dal browser stesso.
PHP, ASP, JSP, PERL, etc sono linguaggi Server-Side, ovvero gli script vengono eseguiti sul server quando la pagina viene chiamata, poi al browser viene inviato l'output (in formati HTML di solito) corrispondente.
Il browser non vede e non vedrà mai il codice Server-Side, proprio per questo motivo Javascript non vedrà mai le variabili definite sul server.
L'unica cosa che puoi fare è stampare una variabile JS con il contenuto della variabile che vuoi usare:
Questo porterà il valore della variabile nel codice della pagina e quindi potrai leggerlo in JS (client side).Codice PHP:
$mia_variabile; //Metti che qui ci sia il valore che vuoi passare a JS
echo "<script type=\"text/javascript\">";
echo "var mia_variabile = '$mia_variabile';";
echo "</script>";
si, ma aggirando la problematica, ecco un modo in cui l'ho fatto io:
Ho creato un file Config.Js, con all'interno le variabili di configurazione che mi servivano
Config.js
poi dal file.phpINLINEPANEL_CONFIG = new Array();
INLINEPANEL_CONFIG["primavariabile"]="hello";
INLINEPANEL_CONFIG["secondavariabile"]="World";
Il giochetto sta nel fare il parsing del file Js e cercare tutte le righe che hanno la sintassi voluta e poi lavorarla. Questo è solo il modo in cui "io" ho aggirato il problema, ma non deve essere obbligatoriamente quello che tu devi usare.Codice PHP://Prelevo il file di configurazione Js
$fJs = @file("Config.js");
if($fJs)
{
foreach($fJs as $kJs=>$vJs)
{
//da file js estraggo le matrici di configurazione
//SINTASSI DA RICERCARE
if(preg_match("/INLINEPANEL_CONFIG\[(\"|\')[\w]+(\"|\')]=(\"|\')[\-\w\.\/]+(\"|\');/",trim($vJs),$Config))
{
@preg_match("/^[\w]{1,}/",substr($Config[0],20),$x);
$Key=$x[0];
$Value=substr($Config[0],(20+strlen($Key)+4),-2);
if($Key!="" & $Value!=""){$INLINEPANEL_CONFIG[$Key]=$Value;}
}
unset($Config,$x,$Key,$Value);
}
}else{echo "+KO: Javascript system non presente";exit;}
echo $INLINEPANEL_CONFIG["primavariabile"]." ".$INLINEPANEL_CONFIG["secondavariabile"]."!!!";
![]()
Luca Bottoni's World
www.bottonisworld.com
Ok, grazie per il chiarimento...
praticamente ho questa situazione, un form che contiene:
1) un menù a tendina (select) creato dinamicamente in base ai risultati di una query (JSP)
2) una textarea
3) un array A contenente i valori (Nomi) che saranno visualizzati nella select di cui sopra e popolato tramite query da database (codice JSP)
4) un array B parallelo all'array A contenenti Descrizioni associate ai Nomi e popolato tramite query da database (codice JSP)
5) uno javascript, miojavascript(), che ha un parametro, txt, e provvede semplicemente a fare
document.mioform.miatextarea.value = txt;
Sulla select voglio definire un evento onchange="" che richiama il mio javascript in modo tale che nella textarea venga visualizzato il valore i-esimo dell'array B, dove tale "i" è il selectedIndex della select. Mi basterebbe quindi definire sulla select
onchange="miojavascript('B.elementAt(this.selected Index)')"
La select la costruisco quindi dinamicamente tramite concatenazione di stringhe.
Sono riuscito a creare questa stringa:
ma ovviamente nella textarea mi viene visualizzato --> B.elementAt(this.selectedIndex)codice:stringaSelect = "<select name=\"Tendina_Dinamica\" size=\"1\" onchange=\"miojavascript('B.elementAt(this.selectedIndex)')\" >";
mentre la stringa
mi ritorna l'errore "selectedIndex cannot be resolved or is not a field"codice:stringaSelect = "<select name=\"Tendina_Dinamica\" size=\"1\" onchange=\"miojavascript('" + B.elementAt(this.selectedIndex) + "')\" >";
Come posso fare?
Grazie![]()
Gli uomini, non avendo potuto guarire la morte, la miseria, l'ignoranza, hanno risolto, per vivere felici, di non pensarci.
stringaSelect = "<select name=\"Tendina_Dinamica\" size=\"1\" onchange=\"miojavascript(B.elementAt(this.selected Index))\" >";
Guarda se funziona
Avevo già provato...non funziona, non visualizza niente nella textareaOriginariamente inviato da artorius
stringaSelect = "<select name=\"Tendina_Dinamica\" size=\"1\" onchange=\"miojavascript(B.elementAt(this.selected Index))\" >";
Guarda se funziona
Deve comunque essere qualcosa simile a
in quanto se sostituisco this.selectedIndex con un intero tutto funziona correttamentecodice:stringaSelect = "<select name=\"Tendina_Dinamica\" size=\"1\" onchange=\"miojavascript('" + B.elementAt(this.selectedIndex) + "')\" >";![]()
Gli uomini, non avendo potuto guarire la morte, la miseria, l'ignoranza, hanno risolto, per vivere felici, di non pensarci.