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

    Modificare/eliminare celle in tabella

    Ciao a tutti...mi sto cimentando nel linguaggio PHP, ma sono veramente agli inizi.


    Il mio problema è il seguente: devo creare una semplice tabella, in cui poi vorrei modificare gli attributi di alcune celle (nello specifico rowspan e colspan) e conseguentemente cancellare le celle adiacenti.


    Mi sto picchiando con domDocument, ma non ne riesco a uscire.


    Il codice è questo:


    codice:
    $html_table .= '<table id="table" align="center" cellspacing="0"><tbody>';
    for($i=1; $i<143; $i++) {
        $html_table .= '<tr>';
        for($j=1; $j<42; $j++) {
            $html_table .= '<td class="text-center" colspan="1" rowspan="1" width="' . 100/41 . '%" id="' .$i.'-'.$j. '"></td>';
        }
        $html_table .= '</tr>';
    }
    $html_table .= '</tbody></table>';
    						
    //modifico colspan
    $domDocument = new domDocument;
    $domDocument->loadHTML($html_table);
    $domElement = $domDocument->getElementById('10-2');
    $domElement->setAttribute('colspan', '5');
    //elimino le celle vicine
    $id = '';
    for($k=1; $k<5; $k++) {
        $id .= '10-' . ($k+2);
        $celltoremove = $domDocument->getElementById($id);
        $celltoremove->parentNode->removeChild($celltoremove);
        $id = '';
    }	
    $domDocument->saveHTML();
    			
    echo $html_table;
    Il mio problema è che non ottengo alcun errore...ma nemmeno nessun risultato.
    Vi ringrazio in anticipo!

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Se questo è il codice completo, un problema ce l'hai già sulla prima riga, perché fai una concatenazione sulla variabile $html_table che stai usando per la prima volta, quindi per PHP è "undefined" e non sa a chi concatenare.
    Se l'errore non ti si presenta vuol dire che c'è un livello di error_reporting troppo basso e dei messaggi d'errore vengono nascosti.

    Se invece la variabile $html_table è definita in precedenza ma hai solo omesso parte del codice, allora va bene non avere quell'errore.

    Di seguito, sistemando quel problema non verrà mostrata a video alcuna tabella, anche se c'è, perché nelle celle non scrivi nessun dato e la tabella è impostata senza bordi, quindi non la vedi.
    Aggiungi i bordi alla visualizzazione della tabella <table border="1" ...> per farlo velocemente, altrimenti non ti rendi conto di niente, poi fa qualche prova e vedi che ti viene fuori.

  3. #3
    Ciao...innanzitutto grazie per la risposta.

    Ho postato solo la parte di codice inerente la tabella, c'è tutta una parte prima con la chiamata al css e la generazione di div menù etc, ma non l'ho messa perchè pensavo generasse confusione più che altro.

    Il risultato della sola tabella lo puoi vedere qui:
    https://www.mimesportfriendly.it/TEST/test.php

  4. #4
    EUREKA!!!! Ho risolto

    Il problema stava tutto nella penultima riga.
    In pratica le operazioni venivano eseguite ma alla fine non salvavo correttamente quello che avevo fatto.

    Questa riga:
    $domDocument->saveHTML();

    Deve essere modificata così:
    $html_table = $domDocument->saveHTML();

    Spero che questo possa aiutare chi come me è alle prime armi!

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