Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Hybrid View

  1. #1

    Problema con foreach e andare a capo

    non so che sto combinando, ma c'è una cosa che non riesco a capire.

    ho una pagina che fai una interrogazione su db, e che sto impostando per essere stampata.
    ho ogni tot record, deve andare a capo in maniera forzata.
    e qui non riesco a capire:
    Codice PHP:
    <?php
                $countImgs 
    0;
                foreach (
    $query as $var):
                    
    $countImgs++;
                    
    ?>
                    <div class="pull-left">
                        <p><?php echo $countImgs?></p>
                    </div>
                    <?php
                    
    if ($countImgs == 2) {
                        
    $countImgs 0;
                        echo 
    '<div style="page-break-before: always;"></div>';
                    }
                endforeach;
                
    ?>
    quello che succede è questo: la prima volta che arriva a due, va a capo e resetta il counter.
    dopo di che, ogni due resetta il counter, ma non va più a capo.
    i valori del counter, che ho messo visibili nella pagina per capire, sono giusti.
    sono sempre: 1 2 1 2 1 2 1 2 1 2
    solo che va a capo solo una volta.
    non riesco a capire

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,509
    Hai già provato a visualizzare il sorgente della pagina? Viene generato correttamente?
    Se viene generato correttamente magari è un problema di CSS.

  3. #3
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Hai già provato a visualizzare il sorgente della pagina? Viene generato correttamente?
    Se viene generato correttamente magari è un problema di CSS.
    allora, il codice html veniva creato in maniera giusta.
    preso un pò dalla "disperazione" ho aggiunto anche il <br>, e magicamente ha funzionato come dovrebbe.
    codice:
    <br>
     <div style="page-break-before: always;"></div>
    il motivo, come dici tu, potrebb essere il css.
    in effetti includo anche il css di bootstrap, ed evidentemente gli da problemi.
    per ora ho risolto così.

    @W Thunderbird
    per quanto riguarda la tua soluzione: da un punto di vista logico è sicuramente più giusta; però non non ho ancora risolto.

  4. #4
    Quote Originariamente inviata da fermat Visualizza il messaggio
    @W Thunderbird
    per quanto riguarda la tua soluzione: da un punto di vista logico è sicuramente più giusta; però non non ho ancora risolto.
    Il problema non è di codice php è di usare html e css correttamente per organizzare la pagina.

    Il tuo errore può essere dettato dal fatto che alcuni browser ignorano i div vuoti e li inseriscono con dimensione pari a zero. Già che hai inserito un div vuoto piuttosto che inserirci il contenuto mi dice che ti mancano un po' di basi di uso dei css/html.

    Fai una prova.. togliendo il div vuoto con il pagebreak e lasciando il br la pagina viene stampata correttamente ? Hai fatto la prova con vari browser ?
    Ultima modifica di W Thunderbird; 19-11-2015 a 18:10

  5. #5
    Quote Originariamente inviata da W Thunderbird Visualizza il messaggio
    Il problema non è di codice php è di usare html e css correttamente per organizzare la pagina.

    Il tuo errore può essere dettato dal fatto che alcuni browser ignorano i div vuoti e li inseriscono con dimensione pari a zero. Già che hai inserito un div vuoto piuttosto che inserirci il contenuto mi dice che ti mancano un po' di basi di uso dei css/html.
    se lo dici tu sarà così.
    probabilmente sono anni che programmo sul web non avendo basi.
    sarò stato fortunato.
    ed evidentemente le basi mancano a tonnellate di blog dai quali ho letto vari esempi e documentazione.

    detto ciò, senza starti a spiegare per filo e per sengo perchè sarebbe troppo complicato, se risolvo seguendo il tuo consiglio ti aggiorno.
    sennò amen.

    grazie a tutti!

  6. #6
    Per andare a capo non è più semplice inserire un:
    Codice PHP:
    echo '<br>' 
    ?

    Poi secondo me l'errore è (anche) concettuale. Inserire un div vuoto con la proprietà di page break non serve a molto.
    Il modo corretto di procedere è inserire le immagini (quante te ne servono) nel div che ha la proprietà di page break. In fase di preparazione per la stampa ci penserà il browser a dividere le immagini impostando i page-break. In pratica se inserisci due immagini, verranno stampate due immagini per ogni foglio.
    Ultima modifica di W Thunderbird; 18-11-2015 a 20:05

  7. #7
    Quote Originariamente inviata da W Thunderbird Visualizza il messaggio
    Per andare a capo non è più semplice inserire un:
    Codice PHP:
    echo '<br>' 
    ?

    Poi secondo me l'errore è (anche) concettuale. Inserire un div vuoto con la proprietà di page break non serve a molto.
    Il modo corretto di procedere è inserire le immagini (quante te ne servono) nel div che ha la proprietà di page break. In fase di preparazione per la stampa ci penserà il browser a dividere le immagini impostando i page-break. In pratica se inserisci due immagini, verranno stampate due immagini per ogni foglio.
    il <br> non viene interpretato come a capo dalla stampa.

    per il secondo punto, domani provo anche quella strada.

  8. #8
    Quote Originariamente inviata da fermat Visualizza il messaggio
    il <br> non viene interpretato come a capo dalla stampa.
    Questa mi è nuova. In un browser che visualizza una pagina html l'istruzione <br> significa vai a capo. E lo interpreta anche facendo il rendering per la stampa.
    Probabilmente si sono altri errori nel codice html che usi.

  9. #9
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Quote Originariamente inviata da W Thunderbird Visualizza il messaggio
    Questa mi è nuova. In un browser che visualizza una pagina html l'istruzione <br> significa vai a capo. E lo interpreta anche facendo il rendering per la stampa.
    Probabilmente si sono altri errori nel codice html che usi.
    fermat vuole iniziare la stampo di una nuova pagina.
    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

  10. #10
    Quote Originariamente inviata da badaze Visualizza il messaggio
    fermat vuole iniziare la stampo di una nuova pagina.
    Lui parla di "andare a capo" ogni tot record.. poi però nel codice usa un'istruzione per interrompere la pagina e iniziare la stampa su una nuova. Sono due cose completamente diverse.
    Che gli serva stampare tot record e poi iniziare su una nuova pagina lo si capisce solo dal codice, non dalla spiegazione che ha scritto.

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