Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    impaginazione scorretta tabella con dati provenienti da database

    Buonasera, spero che sia la sezione più adatta dove parlarne, ma ho un problema di visualizzazione, che forse potrà sembrare banale.

    Di seguito illustro il codice per far capire cosa non va:

    La struttura delle tabelle HTML è la seguente:

    codice HTML:
    <div class="col-sm-10 col-sm-push-1 div-1">
        <table class="datatable table table-primary table-striped table-bordered table-hover">
            <thead>
            <tr class="row">
                <td>ID</td>
                <td>Nome</td>
                <td>Cognome</td>
                <td>Indirizzo</td>
                <td>Email</td>
                <td>Tipo contatto</td>
                <td>Telefono 1</td>
                <td>Telefono 2</td>
                <td>Telefono 3</td>
            </tr>
            </thead>
    
            <tbody id="tab-0">
            <!--inserimento dinamico contenuti-->
            </tbody>
        </table>
        <!--spazio per il form-->
    </div>
    E sono tutte così. Come si può vedere, mi interessa inserire dinamicamente delle righe contenenti i dati, ma non posso farlo direttamente con PHP, perchè sto usando AdminLTE e devo per forza utilizzare chiamate Ajax.

    Ecco cosa succede nel file PHP:

    Codice PHP:
    private $hookUp;
    private 
    $sql;
    private 
    $sql2;
    private 
    $sql3;
    private 
    $sql4;

    public function 
    __construct()
    {
        
    $this->hookUp UniversalConnect::doConnect();

        
    $this->sql "SELECT * FROM cliente";
        
    $this->sql2 "SELECT * FROM accettazione";
        
    $this->sql3 "SELECT * FROM riparazione";
        
    $this->sql4 "SELECT * FROM operatore";

        
    // Tabella cliente

        
    $response = array();
        
    $data = array();

        if (
    $result $this->hookUp->query($this->sql)) {
            while (
    $row mysqli_fetch_array($resultMYSQLI_BOTH)) {

                
    $data[] = array("id" => "<tr class='row'><td>" $row['id'] . "</td>",
                                
    "nome" => "<td>" $row['nome'] . "</td>",
                                
    "cognome" => "<td>" $row['cognome']. "</td>",
                                
    "indirizzo" => "<td>" $row['indirizzo'] . "</td>",
                                
    "email" => "<td>" $row['email'] . "</td>",
                                
    "tipo_contatto" => "<td>" $row['tipo_contatto'] . "</td>",
                                
    "telefono_1" => "<td>" $row['telefono_1'] . "</td>",
                                
    "telefono_2" => "<td>" $row['telefono_2'] . "</td>",
                                
    "telefono_3" => "<td>" $row['telefono_3'] . "</td></tr>");

                
    $response['cliente'] = $data;

                
    $fp fopen("../lista.json""w");
                
    fwrite($fp,json_encode($response));
                
    fclose($fp);
            }
        } 
    Questo vale per tutte le tabelle che devono essere popolate. Ho fatto l'esempio della prima, ma sono tutte uguali.

    In teoria quello che dovrei ottenere è una riga che si inserisca perfettamente sotto quella precedente (quella scritta nel file HTML), ma in realtà se guardo con Firebug, mi viene fuori una cosa del genere:

    codice HTML:
    <tr>
    Id
    </tr>
    <td>
    Dato
    </td>
    Etc...invece la chiusura del tag "tr" dovrebbe trovarsi dopo l'ultimo "td".

    C'entrerà forse il modo in cui carico i dati nel div...

    codice:
    var name;
    var value;
    
    var count_cliente = 0;
    var count_accettazione = 0;
    var count_riparazione = 0;
    var count_operatore = 0;
    
    $('.sidebar-menu a').click(function (e) {
        hideContentDivs();
        var tmp_div = $(this).parent().index();
        $(".main-sections div").eq(tmp_div).show();
    
        $.getJSON("lista.json", function (json) {
    
            if (tmp_div == 0) {
                var data = json.cliente;
    
                if (count_cliente == 0) {
    
                    for (i = 0; i < data.length; i++) {
                        var obj = data[i];
    
                        for (var key in obj) {
                            name = key;
                            value = obj[key].toString();
    
                            $("#tab-0").append(name + " : " + value);
                        }
                    }
                    count_cliente++;
                }
    Dov'è il problema?


  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Puoi postare il contenuto del file json ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Eccolo qua:

    codice:
    {
        "cliente": [
            {
                "id": "<tr class='row'><td>1</td>",
                "nome": "<td>Nome</td>",
                "cognome": "<td>Cognome</td>",
                "indirizzo": "<td>Indirizzo</td>",
                "email": "<td>Nome@provider.it</td>",
                "tipo_contatto": "<td>email</td>",
                "telefono_1": "<td>1234</td>",
                "telefono_2": "<td>4321</td>",
                "telefono_3": "<td>9890</td></tr>"
            }
        ],
        "accettazione": [
            {
                "id": "<tr class='row'><td>1</td>",
                "data": "<td>2015-07-30</td>",
                "id_operatore": "<td>1</td>",
                "dispositivo": "<td>qwerty</td>",
                "note": "<td>qwerty</td>",
                "password": "<td>qwerty</td>",
                "tipo_avviso": "<td>qwerty</td>",
                "id_cliente": "<td>qwerty</td>",
                "difetto_dichiarato": "<td>qwerty</td>",
                "codice": "<td>1234567890</td></tr>"
            }
        ],
        "riparazione": [
            {
                "id": "<tr class='row'><td>1</td>",
                "stato": "<td>asdf</td>",
                "note_riparazione": "<td>asdf</td>",
                "data_riconsegna": "<td>2015-07-06</td>",
                "riconsegnato": "<td>0</td>",
                "difetto_riscontrato": "<td></td>",
                "tag": "<td>asdf</td>",
                "urgente": "<td>1</td>",
                "id_accettazione": "<td>12</td>",
                "id_operatore": "<td>1</td></tr>"
            }
        ],
        "operatore": [
            {
                "id": "<tr class='row'><td>1</td>",
                "nome": "<td>Nome</td>",
                "cognome": "<td>Cognome</td>",
                "username": "<td>a.Cognome</td>",
                "password": "<td>Password</td>",
                "email": "<td>a.Cognome@provider.it</td>",
                "telefono": "<td>1234567890</td>",
                "categoria": "<td>user</td></tr>"
            },
            {
                "id": "<tr class='row'><td>2</td>",
                "nome": "<td>Nome</td>",
                "cognome": "<td>Cognome</td>",
                "username": "<td>qwerty</td>",
                "password": "<td>DIT2013SIS</td>",
                "email": "<td>qwerty@provider.it</td>",
                "telefono": "<td>987654321</td>",
                "categoria": "<td>admin</td></tr>"
            }
        ]
    }

Tag per questa discussione

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.