• User

    Trasformare array in stringa

    Salve a tutti ragazzi, ho il seguente problema:

    tiro fuori dei dati da un db tramite un array che poi vorrei andasse a valorizzare un campo di testo in quanto tramite form devo inserire i dati dell'array in un'altra tabella. Il problema è che non so come gestire l'array per far si che mi valorizzi il campo di testo. Ho provato a trasformarlo in stringa (senza comunqur riuscirci) ma non so se è la cosa giusta da fare.

    L'array me lo creo così e funziona:

    
    array = rsx.GetRows
    For j = 0 To UBound(array, 2)
        Response.Write(array(0, j) & " - ")
    Next
    
    ```Il form col campo di testo valorizzato è questo ma non va: 
    

    <form name="form2" method="post" action="registro.asp" target="_blank">
    <input type="text" name="aziende" value="<%=array%>">
    </form>

    Grazie....

  • User Attivo

    Ad occhio mi sembra che stai cercando di stampare nel campo l'intero oggetto e non il suo valore come fai invece nel response.write.
    Il concetto è lo stesso.
    Non <%=array%> ma <%=array(intero,intero)%>


  • User

    Ciao e grazie per la risposta.

    Dunque in effetti io vorrei stampare l'interno array all'intero del campo di testo. Ho provato come mi hai suggerito (o meglio, come credo di aver capito cosa tu mi stia suggerendo) ma non va

    Se faccio così <%=array(0,1)%> mi stampa nel campo di testo solo l'ultimo valore.

    Se faccio così <%=array(0,2)%> mi da questo errore:
    Subscript out of range: '[number: 2]'

    Dove sbaglio???
    Come avrai intuito non sono un grosso esperto di asp oltre ad aver iniziato a lavorare con gli array da poco.
    Spero mi puoi dare una mano a risolvere il problema.....


  • User Attivo

    Sbagli perchè confondi l'oggetto come se fosse una stringa.
    L'array è un contenitore dei valori non una stringa lunga...tu cerchi di stampare il contenitore e non i suoi valori.

    Ricorda poi che l'indice di un array non parte da 1 ma da 0 quindi se hai 2 valori devi fare array(0,0) e array(0,1) per questo ti dice "out of range" quando usi il 2. Col 2 cerchi di accedere al terzo valore che non esiste.

    Ma forse se dici cosa devi farci con tutti i valori si trova una soluzione più pulita.

    Nel tuo caso puoi fare così:

    
    array = rsx.GetRows
    For j = 0 To UBound(array, 2)
    miovalore=miovalore & array(0, j) & " - "
    
    'sto andando a memoria che l'asp non lo pratico da una vita
    'toglie l'ultimo trattino
    miovalore=left(miovalore,len(miovalore)-3)
    Next
    
    <input type="text" name="aziende" value="<%=miovalore%>">
    
    

  • User

    Dunque ti spiego cosa dovrei fare nel dettaglio: ho messo a punto una specie di newsletter per inviare delle mail informative alle aziende clienti. Di volta in volta però devo selezionare le aziende a cui invio tali informazioni in quanto non posso inviarle indistintamente a tutti. Quindi ho creato una nuova tabella "registro" in cui si inserisce la data dell'invio della mail e le aziende a cui invio la comunicazione.
    Detto questo, dopo aver inviato la mail alle aziende selezionate, riesco tramite l'array a tirare fuori un semplice elenco di queste aziende. Io vorrei stampare questo elenco in un campo di testo in modo tale da potermelo poi richiamare come una semplice stringa per inserirlo nella tabella "registro".

    Spero di essere stato chiaro espero puoi suggerirmi una soluzione più idonea per risolvere il mio problema..

    Grazie


  • User Attivo

    mhm è un po contorta la situazione.
    Intanto prova lo script modificato nella mia precedente risposta.
    Se ho ben capito vuoi inserire nella tabella registro la stringa con tutti i calori concatenati.
    Quindi in un campo metteresti più valori separati da qualcosa?
    Non mi è tanto chiaro forse perchè probabilmente non è la via migliore quella che ha intrapreso


  • User Attivo

    P.s. Ultimamente sto forum si comporta in modo strano. A volte è molto lento ed altre volte, come in questo caso, mi appare il messaggio di attesa per rispondere quando invece è la prima risposta delle giornata che sto dando.


  • User

    Evvai che funziona!!!!!

    A dire il vero ho dovuto togliere la riga
    miovalore=left(miovalore,len(miovalore)-3)

    altrimenti non mi metteva il trattino tra un valore ed un altro.
    Non so perchè, sono andato a tentativi e copia ed incolla senza comprendere bene; come hai potuto intuire ho iniziato da poco a lavorare con gli array e non sto avendo tempo per "studiare" in quanto ho esigenze di mettere in funzione il sito. Appena termino comunque mi studio bene l'argomento in quanto mi sembra di intuire che se utilizzati bene gli array offrono grandi potenzialità per la gestione dei dati.
    Ti ringrazio tanto per l'aiuto, sei stato grande......

    :ciauz:


  • User Attivo

    Hai ragione cacchio...quella stringa che hai tolto va dopo il next (la fretta)!
    Serve a togliere l'ultimo trattino (che immagino non ti serva)


  • User

    Lo dici tu che non mi serve.......:D:D:D

    Mi serve eccome, solo che siccome sono abbastanza impelagato era un problema che avrei affrontato poi più in la a tempo perso. Solo che mi hai anticipato (per fortuna)................Ora provo ad applicare il codice dopo il next e vedo che succede.....


  • User

    Funziona che è una bellezza!!!!!!:D:D:D:D:D:D

    A questo punto ho risolto tutto;
    grazie mille per il prezioso aiuto, a quest'ora ero ancora a sbattere la testa di qua e di la.

    Grazie ancora, ciao alla prossima....:ciauz:


  • User Attivo

    il "che non ti serve" era riferito al trattino nel senso che non ti serve avere l'ultimo trattino nella stringa 😄

    Ok...ciao!


  • User

    Avevo inteso male io il senso della frase :bho:

    Ovviamente comunque scherzavo......

    Grazie ancora per l'aiuto.....Ciao