Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Glossario termini in un sito web (al passaggio del mouse compare il significato)

  1. #1
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,235

    Glossario termini in un sito web (al passaggio del mouse compare il significato)

    Buongiorno ragazzi,

    un cliente mi ha chiesto se fosse possibile inserire un glossario di alcuni termini sul suo ecommerce.

    In pratica, al passaggio del mouse su alcuni vocaboli inseriti in un database, comparirebbe un div mostrando il significato di quel termine.

    Su due piedi mi è sembrata una cosa semplice ma ora, pensandoci bene, non so bene come fare.

    Potrei fare una query del campo "descrizione" (longtext) splittando ogni parola ma credo sarebbe parecchio impattante sulle prestazioni.

    Avete suggerimenti?
    Ultima modifica di Luca1317; 12-10-2018 a 12:27

  2. #2
    ciao,
    una soluzione può essere di precaricare in un array tutti i vocaboli e di lavorare la descrizione presa dal database con una str_ireplace.
    codice:
    <?php
        $vocaboli = array('informatica', 'computer');
        $testo = 'Poche discipline hanno cambiato la storia dell\'uomo come l\'informatica. Tuttavia non sempre l\'utilizzo dei personal computer è facilmente accessibile. Questo ha frenato l\'introduzione dell\'informatica per una considerevole fetta di popolazione';
        
        foreach($vocaboli as $vocabolo){
            $testo = str_ireplace($vocabolo, '<a href="javascript:mostraVocabolo(\''.$vocabolo.'\');">'.$vocabolo.'</a>', $testo);
        }
    
        echo $testo;
    Pensate i programmi a librerie, e innalzate il livello d'astrazione

  3. #3

  4. #4
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,235
    Grazie mille per la risposta, è sicuramente un modo migliore di quello che avevo pensato io e sembra funzionare senza sprecare troppe risorse.

    Approfitto per un piccolo aiuto al volo:

    ho un problema nell'inserire i dati di un database in un array associativo, non so come fare ad inserirli dal database

    codice:
     if($result->num_rows > 0) {
        while($row = $result->fetch_array(MYSQLI_ASSOC))
        {
    		
    		
    	
    		$termine = $row['termine'];
    		$descrizione = $row['descrizione'];
    
    
    
    
    $vocaboli = [
        ''.$termine.'' => ''.$descrizione.'',
    ];
    		
    .....



    Quote Originariamente inviata da M4V1 Visualizza il messaggio
    La libreria Tippy.js è carina e sembra molto utile, grazie per il suggerimento.

  5. #5
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,235
    Come mai se cambio

    codice:
    $vocaboli = array('informatica', 'computer');
    in

    codice:
    $vocaboli = [
        'informatica',
        'computer'
    ];

    nel testo visualizzato a schermo mi viene evidenziato solo l'ultimo elemento dell'array (computer)?
    Ultima modifica di Luca1317; 12-10-2018 a 18:09

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    11,336
    Che versione di PHP usi? Gli array dichiarati con le parentesi quadre sono supportate solo dalla 5.4 in poi.

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