Javascript/Php. Stringa di testo a capo con alert

Discussione in 'Javascript' iniziata da Monte95, 20 Aprile 2017.

  1. Monte95

    Monte95 Nuovo Utente

    Registrato:
    27 Marzo 2017
    Messaggi:
    12
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Ciao a tutti, sapete dirmi come posso risolvere questo piccolo problema:

    ho creato una funzione php che permette di troncare a tot. caratteri una stringa inserita all'interno di una casella di testo, e vengono generati dei puntini di sospensione:
    ad esempio la stringa:
    "blablablabla"
    viene troncata in:
    "bla..."
    Al click dei puntini di sospensione, tale funzione richiama un' altra funzione javascript che mostra a video un alert contente la stringa originale.
    Il problema è che quando inserisco nella casella di testo una stringa che mando a capo, i puntini di sospensione non sono più cliccabili e l'alert di conseguenza non funziona (ad esempio la stringa:
    "blabla
    blabla"
    viene troncata in:
    "bla..."
    ma al click dei puntini di sospensione non parte la funzione javascript con l'alert.

    Sapete dirmi come posso risolvere? Vi lascio quì di seguito la parte di codice interessata:

    Codice:
                
    <?php
    function TagliaStringa($stringa, $max_char) {
        if(strlen($stringa)>$max_char) {
            $stringa_tagliata=substr($stringa, 0,$max_char);
            $cont = "<a onClick=\"link('$stringa')\" style=\"color:blue; text-decoration:blink; \">...</a>";
            return $stringa_tagliata.$cont;
        } else {
                       return $stringa;
                    }
    }
    ?>
    
    Codice:
                
    <script>
    function link(a) {
        alert (a);                       
    }
    </script>
    
    Codice:
    <?php
    $not      = TagliaStringa($note,45);
    echo "<tr> <td> <label> Note: </label> <td> <label> $not </label>";
    ?>
    
    Grazie mille.
     
  2. lperino096

    lperino096 Nuovo Utente

    Registrato:
    17 Aprile 2017
    Messaggi:
    6
    Mi Piace Ricevuti:
    1
    Punteggio:
    3
    Al posto di:"return $stringa_tagliata.$cont;" io metterei semplicemente:"return $cont;"
     
  3. Monte95

    Monte95 Nuovo Utente

    Registrato:
    27 Marzo 2017
    Messaggi:
    12
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Grazie, però non cambia nulla e sopratutto non è la soluzione al mio problema :)
     
  4. criric

    criric Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    21 Agosto 2010
    Messaggi:
    5.501
    Mi Piace Ricevuti:
    51
    Punteggio:
    48
    Località:
    TN
    aggiungi l'attributo href al tag a mi sembra che sia obbligatorio.
    A me funziona
    PHP:
    <?php

    function TagliaStringa($stringa$max_char) {
        if (
    strlen($stringa) > $max_char) {
            
    $stringa_tagliata substr($stringa0$max_char);
            
    $cont "<a href='#' onclick=\"link('$stringa');return false\" style=\"color:blue; text-decoration:blink; \">...</a>";
            return 
    $stringa_tagliata " " $cont;
        } else {
            return 
    $stringa;
        }
    }
    ?>
    <script>
        function link(a) {
            alert(a);
        }
    </script>
    <?php

    $note 
    "blabla<br/>\\nblablablablablablablablablablablablablablablabl"
            
    "<br/>\\nablablablablablablablablablabla";
    $not TagliaStringa($note45);
    echo 
    "<tr> <td> <label> Note: </label> <td> <label> $not </label>";
    ?>
     
  5. Monte95

    Monte95 Nuovo Utente

    Registrato:
    27 Marzo 2017
    Messaggi:
    12
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio

    Adesso provo a fare le modifiche che mi hai detto, però probabilmente mi sono spiegato male, perchè la stringa viene inserita dall'utente finale tramite casella di testo (input type="text") e non da variabile, quindi l' a capo, verrà digitato premendo il classico tasto invio...
     
  6. criric

    criric Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    21 Agosto 2010
    Messaggi:
    5.501
    Mi Piace Ricevuti:
    51
    Punteggio:
    48
    Località:
    TN
    se noti nella mia stringa avevo messo il doppio backslah ( \\n)
    prova cosi
    PHP:
    $cont "<a href='#' onclick=\"link('" str_replace(array("\n","\r"), array("\\n","\\r"), addslashes($stringa)) . "');return false;\" style=\"color:blue; text-decoration:blink; \">...</a>";
     
  7. borgo italia

    borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    4 Febbraio 2008
    Messaggi:
    15.282
    Mi Piace Ricevuti:
    94
    Punteggio:
    48
    Sesso:
    Maschio
    Località:
    PR
    Home Page:
    ciao
    potresti provare così
    PHP:
    function TagliaStringa($stringa$max_char) {
        if (
    strlen($stringa) > $max_char) {
            
    $stringa=nl2br($stringafalse);// trasformo \r in <br>
            
    $stringa=strtr($stringa "<br>"" ");// cambio il <br> con spazio, o si può eliminare completamente
            
    $stringa_tagliata substr($stringa0$max_char);
            
    $cont "<a href='#' onclick=\"link('$stringa');return false\" style=\"color:blue; text-decoration:blink; \">...</a>";
            return 
    $stringa_tagliata " " $cont;
        } else {
            return 
    $stringa;
        }
    }
    //......
     
    A Monte95 piace questo elemento.
  8. Monte95

    Monte95 Nuovo Utente

    Registrato:
    27 Marzo 2017
    Messaggi:
    12
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Ottimo, grazie mille funziona!! :)
     
Sto caricando...

Condividi questa Pagina