Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Comportamento su Left(stringa)

    salve,
    vi propino il mio ennesimo problema...

    ho una tabella news, in cui ho i campi titolo news, data, corpo.

    Il campo corpo è riempito ovviamente del testo della news, che in fase di inserimento viene formattato con un editor di testo che è CKEditor, che crea i tag adeguati per i paragrafi, grassetto ecc...

    Ora, io ho una pagina in cui devo visualizzare le news ed una piccola anteprima, che propongo in questo modo.

    rs(titolo)
    rs(data)
    left(rs(corpo), 100)

    prendendo in questo caso i primio 100 caratteri inseriti e troncando l'articolo.

    Può succedere che questo troncamento avviene in corrispondenza di un pezzo di testo formattato con il grassetto o alla fine di un </p> per cui il tag mi rimane aperto e porta scompensi nella visualizzazione corretta della pagina.

    esempio ".... questa è la fine del paragrafo </p>"
    mi potrebbe risultare troncato in ".... questa è la fine del paragrafo </"

    C'è un modo per fare in modo che il contenuto di rs(corpo) anche se viene troncato in corrispondenza di un tag da chiudere non mi dia problemi?

    io la news l'ho racchiusa in un tag <div> ad esempio, questo è un problema che si risolve con ASP o CSS o altro?

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    L'anteprima dovresti farla "al netto" delle formattazioni.
    Potresti applicare una funzione che elimini TUTTI i tag HTML dalla stringa, in questo modo la LEFT() funzionerebbe senza problemi.

    Roby

  3. #3
    cerca nel forum, se ne è parlato mille mila volte

  4. #4
    ho risolto con questa funzione

    codice:
    <%
        Function StripTags(TextToStrip)
            Dim re
            Set re = New RegExp
            re.Pattern = "<[^>]+>"
            re.IgnoreCase = True
            re.Global = True
            StripTags = re.Replace(TextToStrip, "")
            Set re = Nothing
        End Function
    %>
    <%
        Dim stringa
        stringa = rs(corpo)
        Response.Write StripTags(stringa)
    %>

  5. #5
    aggiorno il problema, non credo sia necessario aprire un nuovo topic.

    Ho un anteprima di una news a cui non posso togliere i tag HTML con la funzione sopra riportata, ma deve presentare forzatamente una parte di testo racchiusa nel tag .

    Però succede che usando la funzione Left per i primi 100 caratteri può darsi che al 100 carattere il tag rimanga aperto e cos' mi scombina il contenuto della pagina formattandomi tutti il testo restante di grassetto.

    Come posso risolvere a questo problema?

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Recupera i 100 caratteri con la left().
    Se al suo interno ci sono e va bene così (o nessuno dei due).
    Se c'è solo il primo allora aggiungi forzosamente il secondo.

    Puoi fare il controllo con la Instr()

    Roby

  7. #7
    ops letto male

  8. #8
    separa la parte che deve rimanere formattata dal resto, e tratta solo il resto

  9. #9
    ho risolto riadattando questa funzione postata da Grambo tempo fa per un utente che aveva suppergiù il mio solito problema...

    <%
    chiusura=""
    testo="[g ]ciao [b ]come[ /b][/ g] va[g ][b ]?"

    tag=split(testo,"[")

    for i=1 to ubound(tag)
    lettera=left(tag(i),1)

    if lettera="/" then
    chiuso="["&Mid(tag(i), 2, 1)&"]"

    gia_chiusi=split(chiusura,",")
    cont=0
    chiusura=""
    for t=1 to ubound(gia_chiusi)
    if cont=0 and gia_chiusi(t)=chiuso then
    gia_chiusi(t)=""
    cont=1
    end if

    chiusura=chiusura&gia_chiusi(t)
    next

    else
    chiusura=chiusura&"[/"&lettera&"],"
    end if

    next

    chiusura=Replace(chiusura, ",", "")
    testo=testo&chiusura

    response.write testo&"..."
    %>

  10. #10
    Riuppo questo vecchio topic perchè ho sempre un problema con la funzione StripTags che vi espongo qui sotto

    <% if Request.QueryString("lang") = "en" then
    corpo = rsFeatured.Fields.Item("decrizioneProdottoEng").Va lue
    elseif Request.QueryString("lang") = "it" then
    corpo = rsFeatured.Fields.Item("decrizioneProdottoIta").Va lue
    else
    corpo = rsFeatured.Fields.Item("decrizioneProdottoCze").Va lue
    end if

    nohtml = StripTags(corpo)

    Response.Write left(nohtml, 100)
    %>

    questo è il codice che uso, in pratica a seconda del parametro passato sull'url recupero il campo memo della lingua, poi vorrei togliere l'html e recuperare le prime 100 lettere.

    però questo è l'errore che visualizzo

    Errore di run-time di Microsoft VBScript. Tipo non corrispondente: 'StripTags'

    chi mi aiuta gentilmente?

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.