Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  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,503
    Hai già provato a visualizzare il sorgente della pagina? Viene generato correttamente?
    Se viene generato correttamente magari è un problema di CSS.

  3. #3
    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

  4. #4
    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.

  5. #5
    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.

  6. #6
    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

  7. #7
    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.

  8. #8
    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.
    allora, sto cercando di seguire la tua strada.
    ma c'è una cosa che non capisco.

    quando dici inserire le immagini (quante te ne servono) che intendi di preciso?
    io a priori non so quante immagini ci siano in totale.
    ma so che ogni pagina deve avere due righe da 8.
    quindi 16 immagini al massimo.
    come faccio a dire al div di prenderne solo 16 e poi di cambiare pagina?

  9. #9
    Quote Originariamente inviata da fermat Visualizza il messaggio
    quando dici inserire le immagini (quante te ne servono) che intendi di preciso?
    Che tu debba inserire delle immagini l'ho interpretato io dal suffisso "Img".

    Il codice html, concettualmente deve essere organizzato così:
    codice HTML:
    <div style="page-break-before: always;">
    <div "con la classe che imposta le proprietà delle immagini come dimensione etc.">
    <img 1>
    <img 2>
    <img 3>
    <img 4>
    <img 5>
    <img 6>
    <img 7>
    <img 8>
    </div>
    </div>
    A cambiare pagina ci pensa il browser inserendo un page break prima del div con la proprietà di page break-before.
    Ovviamente il primo div che contiene le immagini non deve avere il page break- before altrimenti ti stampa una pagina vuota.
    Ultima modifica di W Thunderbird; 19-11-2015 a 13:25

  10. #10
    Quote Originariamente inviata da W Thunderbird Visualizza il messaggio
    Che tu debba inserire delle immagini l'ho interpretato io dal suffisso "Img".

    Il codice html, concettualmente deve essere organizzato così:
    codice HTML:
    <div style="page-break-before: always;">
    <div "con la classe che imposta le proprietà delle immagini come dimensione etc.">
    <img 1>
    <img 2>
    <img 3>
    <img 4>
    <img 5>
    <img 6>
    <img 7>
    <img 8>
    </div>
    </div>
    A cambiare pagina ci pensa il browser inserendo un page break prima del div con la proprietà di page break-before.
    Ovviamente il primo div che contiene le immagini non deve avere il page break- before altrimenti ti stampa una pagina vuota.
    ok, quindi in pratica aggiustare le immagini, o il div che contiene immagini e varie info, in modo da rientrare precisamente nella pagina.
    giusto?

    se intendi questo, devo vedere perchè purtroppo a volte ho solo immaginia.
    a volte anche altre info da visualizzare che occupano più spazio.
    quindi dovrei cercare un modo per avere lo stesso risultato in tutti i casi.
    e sincermante non saprei.
    ti ringrazio per il sugerimento, ci lavoro!

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.