Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    da lato server a javascript

    Ciao a tutti,
    premetto che so ben poco di javascript. Il mio problema è questo: ho una funzione in javascript nella mia pagina .aspx .... vorrei passare come parametro a questa funzione un "array" che è risultato di una select dal mio database ... quindi avrei bisogno di sapere se è possibile e come fare a passare un parametro da lato server alla funzione javascript

    spero mi possiate aiutare,
    Ciaooo

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    il metodo più facile è quello solito:

    function mia_funzione(vettore)
    {
    //corpo funzione
    }


    //richiamo funzione

    mia_funzione(<%=variabile_server%>);

    ps.
    certo che siete complicati Voi di asp.net

    Pietro

  3. #3
    Ciao Pietro, ho provato ma mi restituisce un errore nell'html della pagina .aspx ... la variabile variabile_server non esiste in questo contesto ... ti faccio vedere meglio la mia situazione:



    nell'html ho questo:


    <tr>
    <td style="font-size:10px;width: 215px;" valign="top">
    <script language="JavaScript1.2">
    TreeMenu(-1, -1, <%=vet1%>, <%=vet2%>); </script>
    </td>
    </tr>



    la funzione TreeMenu è in un file .js dove passandogli i vettori vet1 e vet2 mi crea un menu con sezioni e relative sottosezioni......(per prova metto sottosezioni statiche per solo la prima sezione)


    nel codice (lato server) ho questo:

    string[] vet1 = new string[10];
    vet1[1] = "sezione1";
    vet1[2] = "sezione2";
    vet1[3] = "sezione3";

    string[] vet2 = new string[10];
    vet2[1] = "sottosezione1";
    vet2[2] = "sottosezione2";
    vet2[3] = "sottosezione3";

    il problema sta nel fatto che questi vettori, cioè i nomi delle sezioni del menu devo prenderli dal database e siccome con javascript non posso fare una connessione al db, devo fare questo dal lato server...

    Secondo te vet1 e vet2 non li riconosce forse perchè stanno in uno script javascript ????

    Grazie!!

    p.s. anche tu fai parte del mondo asp.net non negarlo

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Non puoi passare direttamente l'array vbscript... devi fare un ciclo e per ogni elemento far scrivere la linea cosi' come la scriveresti lato client (come nell'esempio che hai postato).

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Lavori in c# e fai queste domande?

    Questa è una vecchia funzione scritta in basic che, facendo un ciclo, produce nel server una stringa, ma che nel client viene vista come un vettore javascript
    codice:
    '--------------------------------------------------------------
    'restituisce un vettore monodimensionale letterale js di string
    '--------------------------------------------------------------
    Public Overloads Function vettoreToArrayJS$(ByVal a$())
    	Const Delimitatore$ = """"
    
    	Dim i%, r%
    	Dim vjs$ = ""
    
    	r = a.GetUpperBound(0)        'indice max riga. Righe = r+1
    
    	vjs = ""
    
    	For i = 0 To r
    	    If vjs = "" Then
    		vjs = Delimitatore & a(i).ToString.Replace("""", "\""") & Delimitatore
    	    Else
    		vjs &= ", " & Delimitatore & a(i).Replace("""", "\""") & Delimitatore
    	    End If
    	Next
    	vjs = "[" & vjs & "]"
    
    	Return vjs
    
    End Function
    Naturalmente è da rivedere perchè non si usano le stringhe che sono lente, ma il StringBuilder.

    Comunque sia, in javascript, un vettore di stringhe assume la forma:

    var variabile = ["Stefano", "Carlo", "Nicola"];

    Perciò, la tua variabile stringa dovrà contenere questo:

    ["Stefano", "Carlo", "Nicola"]


    perciò, nel client sarà per esempio:

    mia_funzione(<%=variabileserver%>);

    Ma, se proprio sei libidinoso, usa le funzioni server (ClientScript.RegisterArrayDeclaration)


    ps.
    Io Asp.Net non l'ho mai visto e sentito. Qualunque cosa sia successo, a quell'ora ero a casa
    Pietro

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Basta cosi', per me e' arabo... vi sposto su ASP.NET
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da br1
    Basta cosi', per me e' arabo... vi sposto su ASP.NET
    non è giusto a php sì ed ad asp.net no

    Pietro

  8. #8
    Grazie Pietro!!!

    Comunque il mio problema non era solo dal lato server per come mandare il vettore alla funzione javascript ma era anche per il lato client cioè come in ""javascript"" recuperare tale vettore...poteva fare comodo anche a chi frequenta il forum "javascript"...!! :master:


  9. #9
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Il fatto è, scusami, che non ti spieghi bene. Almeno io non capisco, e non ho la proverbiale pazienza di Br1, nel spiegare bene i basilari. Non so:

    Se ho del codice javascript, per esempio:


    function miaFunzione(vettore){}

    e la debbo lanciare da un posto qualsiasi, farò per esempio:

    var a = ["x", "y", "z"];

    miaFunzione(a);

    --------------------------
    adesso, visto che sei nel server (e che usi c# ) hai tu il controllo. Perciò nel server ti devi creare una variabile stringa, che contenga ["x", "y", "z"]

    e nel client, al posto di mettere var a = ["x", "y", "z"];
    metterai

    var a = <%=variabileServerStringa%>;
    miaFunzione(a);

    Questa è la vecchia soluzione Asp, che secondo me, funziona molto bene in tante situazioni


    COMUNQUE, dato che non sono bravo a spiegare, mi piacerebbe che intervenissero pure altri.

    Ciao
    Pietro

  10. #10
    Perfetto Pietro ci sono riuscito, grazie per la pazienza....scusami, purtroppo quando non si è esperti non ci si spiega nemmeno bene


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 © 2025 vBulletin Solutions, Inc. All rights reserved.