Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di inc40
    Registrato dal
    Sep 2004
    Messaggi
    319

    Visibilità di variabili

    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.

  2. #2
    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:

    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>"
    Questo porterà il valore della variabile nel codice della pagina e quindi potrai leggerlo in JS (client side).

  3. #3
    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

    INLINEPANEL_CONFIG = new Array();

    INLINEPANEL_CONFIG["primavariabile"]="hello";
    INLINEPANEL_CONFIG["secondavariabile"]="World";
    poi dal file.php

    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"]."!!!"
    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.
    Luca Bottoni's World
    www.bottonisworld.com

  4. #4
    Utente di HTML.it L'avatar di inc40
    Registrato dal
    Sep 2004
    Messaggi
    319
    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:
    codice:
    stringaSelect = "<select name=\"Tendina_Dinamica\" size=\"1\" onchange=\"miojavascript('B.elementAt(this.selectedIndex)')\" >";
    ma ovviamente nella textarea mi viene visualizzato --> B.elementAt(this.selectedIndex)

    mentre la stringa

    codice:
    stringaSelect = "<select name=\"Tendina_Dinamica\" size=\"1\" onchange=\"miojavascript('" + B.elementAt(this.selectedIndex) + "')\" >";
    mi ritorna l'errore "selectedIndex cannot be resolved or is not a field"

    Come posso fare?

    Grazie
    Gli uomini, non avendo potuto guarire la morte, la miseria, l'ignoranza, hanno risolto, per vivere felici, di non pensarci.

  5. #5
    stringaSelect = "<select name=\"Tendina_Dinamica\" size=\"1\" onchange=\"miojavascript(B.elementAt(this.selected Index))\" >";

    Guarda se funziona

  6. #6
    Utente di HTML.it L'avatar di inc40
    Registrato dal
    Sep 2004
    Messaggi
    319
    Originariamente inviato da artorius
    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 textarea

    Deve comunque essere qualcosa simile a
    codice:
    stringaSelect = "<select name=\"Tendina_Dinamica\" size=\"1\" onchange=\"miojavascript('" + B.elementAt(this.selectedIndex) + "')\" >";
    in quanto se sostituisco this.selectedIndex con un intero tutto funziona correttamente
    Gli uomini, non avendo potuto guarire la morte, la miseria, l'ignoranza, hanno risolto, per vivere felici, di non pensarci.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.