Visualizzazione dei risultati da 1 a 8 su 8

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2024
    Messaggi
    15
    Quote Originariamente inviata da SoloWiFi Visualizza il messaggio
    Nel campo foto devo aggiungere "onload" che chiamerá una funzione che controlla le dimensioni originali della foto tramite nativeWidth oppure nativeHeight
    Se le dimensioni ti indicano che la foto non c'è, allora ci carichi quella di default

    Non ti do sorgenti da copiare ed incollare.
    Ragionaci da solo.
    Ho cercato di applicare il tuo suggerimento,


    codice:
    $(document).ready(function () {
        let badgeTable = null; // Variabile per mantenere il riferimento alla tabella dei badge
    
        var img = new Image();
        img.onload = function() {
            // Controlla le dimensioni originali dell'immagine
            if (this.naturalWidth === 0 && this.naturalHeight === 0) {
                // Se le dimensioni indicano che l'immagine non esiste, carica l'immagine di default
                imgElement.src = "../img/dip/NoPhoto.png";
            }
        };
        img.src = imageUrl;
    
    
        // Inizializzazione della tabella dei dipendenti
        let table = $('#example').DataTable({
            select: true,
            select: {
                info: false
            },
            lengthMenu: [5, 10],
            "ajax": {
                "url": "../php/dipendente.php",
                "dataSrc": "data"
            },
            "order": [[1, 'asc']],
            "language": {
                "url": "../json/italiano.json"
            },
            "columns": [
                { "data": "iddip" },
                { "data": "matr" },
                { "data": "cognome" },
                { "data": "nome" },
                { "data": "nascita" },
                { "data": "matrcomune" },
                { "data": "assunzione" },
                { "data": "iniznomin" },
                { "data": "foto" },
                { "data": "stato" },
                { "data": "tot_badge" }
            ],
            "columnDefs": [
                {   
                    "targets": 8, // Indice della colonna con il percorso dell'immagine
                    "render": function(data, type, row, meta) {
                        if (data) {
                            // Crea un elemento immagine con l'URL specificato e l'evento onload
                            var imageHtml = '<img src="../img/dip/' + data + '" alt="Immagine dipendente" style="width:50px;height:50px;" onload="checkImageDimensions(this, \'../img/dip/' + data + '\');">';
                            
                            // Ritorna l'elemento immagine
                            return imageHtml;
                        } else {
                            // Se l'immagine non esiste, mostra l'immagine di default
                            return '<img src="../img/dip/NoPhoto.png" alt="Immagine di default" style="width:50px;height:50px;">';
                        }
                    }
                }
            ]
        });
    
    

    ma rimane tale e quale, di sicuro sbaglierò in qualcosa, ma sarebbe interessante capire dove sbaglio, perchè sono sicuro che il tuo suggerimento funziona, di contro devo dirti che non avevo pensato di risolvere la cosa lato php, piuttosto che lato script, in questo modo, con una if sul while:

    codice:
    $statement = $pdo->prepare($query);
    $statement->execute();
    
    // Array per le righe dei dati
    $fetchdata = array('data' => array());
    
    // Ciclo attraverso i risultati per costruire le righe
    while ($row = $statement->fetch(PDO::FETCH_ASSOC)) {
    $fotoMiniatura = "../img/dip/".$row['foto'];
    
    // Verifica se l'immagine specificata esiste nella cartella
    if (file_exists($fotoMiniatura)) {
    // Se esiste, utilizza l'immagine specificata
        } else {
    // Se non esiste, utilizza un'immagine di default
    $fotoMiniatura = "../img/dip/NoPhoto.png";
        }
    
    
    $fetchdata['data'][] = array(
    'iddip' => $row['iddip'],
    'matr' => $row['matr'],
    'cognome' => $row['cognome'],
    'nome' => $row['nome'],
    'nascita' => $row['nascita'],
    'matrcomune' => $row['matrcomune'],
    'assunzione' => $row['assunzione'],
    'iniznomin' => $row['iniznomin'],
    'foto' => $fotoMiniatura,
    'stato' => $row['stato'],
    'tot_badge' => $row['tot_badge'] // Totale dei badge associati
            );
        }
    
    in questo modo l'immagine di default NoPhoto.png viene caricata regolarmente.

    Grazie mille comunque, ma vorrei capire dove ho sbagliato, se avrai in po di pazienza per spiegarmelo
    Ultima modifica di diego966; 04-04-2024 a 12:47

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.