Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di Fran
    Registrato dal
    Jun 2002
    Messaggi
    22

    Link cliccabili in campo memo

    Signori,

    nonostante la mia scarsa conoscenza di asp in genere riesco a trovare da me, provando e riprovando, una soluzione ai problemi. Ma questa volta ho bisogno di aiuto.

    Ho una funzione che fa in modo che gli url presenti in un campo memo diventino cliccabili. La funzione è la seguente:


    codice:
    Dim strText
    strText = InsertHyperlinks(rs.fields("messaggio"))
    messaggio = strText
    
    Function InsertHyperlinks(inText)
    Dim objRegExp, strBuf
    Dim objMatches, objMatch
    Dim Value, ReplaceValue, iStart, iEnd
    
      strBuf = ""
      iStart = 1
      iEnd = 1
      Set objRegExp = New RegExp
    
      objRegExp.Pattern = "\b(www|http|\S+@)\S+\b"  ' Match URLs and emails
      objRegExp.IgnoreCase = True                   ' Set case insensitivity.
      objRegExp.Global = True                       ' Set global applicability.
      Set objMatches = objRegExp.Execute(inText)
      For Each objMatch in objMatches
        iEnd = objMatch.FirstIndex
        strBuf = strBuf & Mid(inText, iStart, iEnd-iStart+1)
        If InStr(1, objMatch.Value, "@") Then
          strBuf = strBuf & GetHref(objMatch.Value, "EMAIL", "_BLANK")
        Else
          strBuf = strBuf & GetHref(objMatch.Value, "WEB", "_BLANK")
        End If
        iStart = iEnd+objMatch.Length+1
      Next
      strBuf = strBuf & Mid(inText, iStart)
      InsertHyperlinks = strBuf
    End Function
    
    
    Function GetHref(url, urlType, Target)
    Dim strBuf
    
      strBuf = "" & url & ""
        Else
          strBuf = "" & url & ""
        End If
      ElseIf UCase(urlType) = "EMAIL" Then
        strBuf = "" & url & ""
      End If
      
      GetHref = strBuf
    
    End Function
    Funziona benissimo su un solo record ma se voglio applicarla a più records nella stessa pagina non va. Se la inserisco nel codice prima di Do Until rs.EOF non funziona. Se la inserisco dopo e prima di visualizzare i record mi dà errore quando trova “Function”.

    Qualche suggerimento?

    Ciao e grazie

    Francesco

  2. #2
    Le funzioni le devi mettere fuori dal ciclo.
    Dentro al ciclo metti solo la chiamata alla funzione.

  3. #3
    Utente di HTML.it L'avatar di Fran
    Registrato dal
    Jun 2002
    Messaggi
    22
    Grazie Mems, devo dire che il sospetto di tenerla fuori dal ciclo mi era venuto ;-)

    Ma ho risolto comunque, per fortuna: basta spostare quel

    codice:
    Dim strText
    strText = InsertHyperlinks(rs.fields("messaggio"))
    messaggio = strText
    dopo il DO.

    Che tondo, perchè non ci ho pensato prima?

    Ciao

    F

    Eh, lo so: il mio approccio alle ASP è piuttosto empirico ;-)

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.