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

    Problema con visualizzazione

    salve!
    ho un problema di visualizzazione.
    questo il riepilogo:
    Codice PHP:
    <table class="tb_ordine">
                                    <thead>
                                        <tr>
                                            <?php foreach ($this->collezioni_model->getTaglieDaScalarino($rigord->scal_fk) as $tg): ?>
                                                <th><?php echo $tg->tg_taglia?></th>
                                            <?php endforeach; ?>
                                        </tr>
                                        <tr>
                                            <?php
                                            $qtaTotRiga 
    NULL;
                                            foreach (
    $this->ordini_model->getRigordSospesoQt($clienteId$rigord->art_modello$rigord->colore_id) as $qt):
                                                
    ?>
                                                <th>
                                                    <?php
                                                    $qtaTotRiga 
    += $qt->r_qt;
                                                    echo 
    $qt->r_qt;
                                                    
    ?>
                                                </th>
                                            <?php endforeach; ?>
                                        </tr>
                                    </thead>
                                </table>
    in pratica prendo tutte le taglie dell'articolo e sotto le relative quantità.
    nel db vengono salvate bene ma poi in visualizzazione si sminchia tutto.
    in pratica se un articolo ha la 38, la 40 e la 42, e l'utente ordina la 40 e la 42, sulla pagina sembra che abbia ordinato la 38 e la 40.
    in pratica si sposta tutto a sinistra.
    ma ripeto, nel db viene registrato tutto bene.
    come posso fare??

  2. #2
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Non conoscendo come hai definito gli oggetti in questione, posso solo fare un ipotesi:

    Nella prima riga, mi pare, prendi TUTTE le taglie disponibili, mentre nella seconda ci sono SOLO quelle ordinate. Quindi, sempre per ipotesi, i due foreach hanno dimensioni diverse => ti sfalsa l'accoppiamento taglia-quantità.

    Credo che dovresti fare qualcosa del tipo:

    Codice PHP:
    <?php
    foreach($this->collezioni_model->getTaglieDaScalarino ...): ?>
       <th><?php echo $tg->tg_taglia?></th>
    <?php
    endforeach;

    foreach(
    $this->collezioni_model->getTaglieDaScalarino ...): ?>
       <th>
          <?php 
               
    if($tg->tg_taglia è presente in ordini_model->f($clienteId$rigord->art_modello,$tg->tg_taglia ))
                    echo 
    ordini_model->f(clientearticolo,$tg->tg_taglia );
               else
                    echo 
    "0";
           
    ?>
       </th>
    <?php
    endforeach;
    ?>
    Come ho detto sto andando per intuizione...

  3. #3
    si scusa, ho copiato il codice di un sito in cui uso codeigniter invece di un altro.

    cmq la tua intuizione è giusta.
    i due array hanno dimensioni diverse e quindi si sposta.
    ho provato a fare una cosa del genere (ti metto un codice forse più pulito):
    Codice PHP:
    <table class="tb_ordine">
        <thead>
            <tr>
                <?php
                $tgArray 
    = array();
                foreach (
    $objConnCerca->getTaglie($rigord['articolo_codice']) as $tg):
                    
    ?>
                    <th>
                        <?php
                        $tgArray
    [] = $tg['taglia_codice'];
                        echo 
    $tg['taglia_codice'];
                        
    ?>
                    </th>
                <?php endforeach; ?>
            </tr>
            <tr>
                <?php
                $qtaTotRiga 
    NULL;
                foreach (
    $objConnCerca->getRigordStoricoQt($_GET['tesord'], $_GET['cliente'], $rigord['articolo_codice'], $rigord['articolo_colcod']) as $qt):
                    
    ?>
                    <th>
                        <?php
                        $qtaTotRiga 
    += $qt['rigord_qta'];
                        if (
    in_array($qt['taglia_codice'], $tgArray)) {
                            echo 
    $qt['rigord_qta'];
                        } else {
                            echo 
    'NO';
                        }
                        
    ?>
                    </th>
                <?php endforeach; ?>
            </tr>
        </thead>
    </table>
    prima ho creato un array con tutte le taglie.
    poi sotto controllo che quella taglia sia nell'array, e a seconda del risultato stampo una cosa o un'altra.
    però il risultato è lo stesso.

  4. #4
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Il problema è che continui a fare due foreach su collection che hanno dimensioni diverse
    getRigordStoricoQt() non credo ti restituisca articoli con taglie non ordinate dal cliente, giusto?

    potresti fare così, anche se non so se l'ordine viene rispettato:

    Codice PHP:
    <table class="tb_ordine"> 
        <thead> 
            <tr> 
                <?php 
                $tgArray 
    = array(); 
                foreach (
    $objConnCerca->getTaglie($rigord['articolo_codice']) as $tg): 
                    
    ?> 
                    <th> 
                        <?php 
                        $tgArray
    [$tg['taglia_codice']] = 0
                        echo 
    $tg['taglia_codice']; 
                        
    ?> 
                    </th> 
                <?php endforeach; ?> 
            </tr> 
            <tr> 
                <?php 
                $qtaTotRiga 
    NULL
                foreach (
    $objConnCerca->getRigordStoricoQt($_GET['tesord'], $_GET['cliente'], $rigord['articolo_codice'], $rigord['articolo_colcod']) as $qt){
                
    $qtaTotRiga += $qt['rigord_qta']; 
                
    $tgArray[$qt['taglia_codice']] = $qt['rigord_qta'];
    }
                foreach(
    $tgArray as $row):
                    
    ?> 
                    <th> 
                        <?php 
                            
    echo $row;
                        
    ?> 
                    </th> 
                <?php endforeach; ?> 
            </tr> 
        </thead> 
    </table>

  5. #5
    ok così pare funzionare.
    facendo un confronto con i dati del db mi sembra che combaci tutto.

    cmq tu hai perfettamente ragione, ma c'è una cosa che non mi spiego proprio.
    ovunque nelle varie pagine ho questo problema.
    ma quando eseguo la query e costruisco la pagina che poi viene mandata per email invece non ho problemi.
    ecco perchè non me ne ero mai accorto prima.

    grazie!!

  6. #6
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626

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.