• User

    Riga di spazio indesiderata in una tabella php

    Ciao ragazzi,

    sto provando questo calendario:

    [php]

    <?php

    function calendario($mese,$anno){

    if ($GET['x'] == NULL){
    $mese
    = $mese;
    $anno_ = $anno;
    }
    else{
    $mese_ = (int)strftime( "%m" ,(int)$GET['x']);
    $anno
    = (int)strftime( "%Y" ,(int)$_GET['x']);
    }

    $prev = mktime(0, 0, 0, $mese_ -1, 1, $anno_);

    $next = mktime(0, 0, 0, $mese_ +1, 1, $anno_);

    $human_month = array("error", "Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre" );

    $settimana_3 = array("Lun", "Mar", "Mer", "Gio", "Ven", "Sab", "Dom");
    $settimana = array("L", "M", "M", "G", "V", "S", "D");
    $colonne = 7;
    $giorni = date("t",mktime(0, 0, 0, $mese_, 1, $anno_)); //giorni del mese in questione
    $primo_lunedi= date("w",mktime(0, 0, 0, $mese_, 1, $anno_)); //Array_parte da 0

    if($primo_lunedi==0){
    $primo_lunedi = 7; //siamo mica americani
    }

    echo "<table width="190" border="1" align=center>"; //table
    echo "<tr>\n\t\t<td colspan="".$colonne."" align="center"><div class="mese"><b><a href="?x=".$prev."">«</a> <span class="txtwhiteB">".$human_month[(int)$mese_]." ".$anno_."</span> <a href="?x=".$next."">»</a></b></div></td>\n\t</tr>"; //mese/anno

    foreach($settimana as $val){

    echo "\n\t\t<th height="20" class="giorno">".$val."\t</th>";

    }
    echo "</tr>";

    for($i = 1; $i<$giorni+$primo_lunedi; $i++){

    if($i%$colonne+1==0){

    echo "\n\t<tr>";

    }
    if($i<$primo_lunedi){

    echo "\n\t\t<td> </td>";

    }
    else{

    $giorno_= $i-($primo_lunedi-1);
    $a = strtotime(date($anno_."-".$mese_."-".$giorno_));
    $b = strtotime(date("Y-m-d"));

    if($a != $b){
    echo "\n\t\t<td class="altri_giorni" align=center><a href="".$url_gestione_eventi."?x=".$a."">".$giorno_."</a></td>";
    }
    else{
    echo "\n\t\t<td align=center class="oggi" style="border: 2px solid rgb(255, 153, 0);"><a href="".$url_gestione_eventi."?x=".$a."">".$giorno_."</a></td>";
    }
    }
    if($i%$colonne==0){
    echo "\n\t</tr>";
    }
    }
    echo "\n\t<tr height="30"> \n\t</tr>";
    echo "\n</table>";
    }

    calendario(date("m"),date("Y"));
    // calendario(date("m"),date("Y"));

    ?>

    [/php]E' tutto ok a parte che mi prende due break di riga all'inizio che non riesco a capire come togliere.....qualche idea?

    :bho:


  • User Attivo

    Ciao ciccio6630,

    il problema dovrebbe essere nella riga seguente:

    [PHP]echo "\n\t<tr height="20"> \n\t</tr>";[/PHP]

    si tratta dell'ultima riga che viene scritta prima di chiudere la "table".

    Se provi a commentare quella riga dovresti risolvere il problema.

    Se tu volessi ottenere lo stesso effetto grafico c'è sicuramente il modo di farlo.

    Inoltre ti segnalo un'altra piccola dimenticanza, non causa il tuo problema però dovrebbe essere corretta.

    Dopo:
    [PHP]
    echo "<table width="190" border="1" align=center>"; //table
    echo "<tr>\n\t\t<td colspan="".$colonne."" align="center"><div class="mese"><b><a href="?x=".$prev."">«</a> <span class="txtwhiteB">".$human_month[(int)$mese_]." ".$anno_."</span> <a href="?x=".$next."">»</a></b></div></td>\n\t</tr>"; //mese/anno[/PHP]

    ti manca un:

    [PHP]echo "<tr>";
    [/PHP]

    Fammi sapere se risolvi.

    Correggo il titolo del thread, mettendo uno più tecnico anche se " Ignoranza notturna, o stanchezza..." mi è stato utile a capire la causa dell'errore.

    :ciauz:


  • User

    Grande MZ!

    E grazie anche per le correzioni....

    L'ulteriore che mi hai evidenziato l'avevo già notata e corretta, è uno script che ho trovato in rete, è fatto discretamente ma come HTML (come hai avuto modo di constatare) è fatto un po' coi piedi.

    Grazie ancora!!