Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [Codeigniter] Passaggio di parametri in Model

    salve!
    ho un problemino con il passaggio dei parametri nel model dove delle funzioni per interagire con il db.
    ho una tabella Colori, e all'interno diversi altri campi riferiti ad altre tabelle.
    io vorrei fare questo: prendere tutti i colori, e poi per ogni colore prendere gli altri campi.
    dovendo suddivedere ogni colore nella pagina io farei così se non usassi CI:
    Codice PHP:
    foreach (getColori() as $col) {
       foreach(
    getDetail($col['col_id']) as $dtl) {
           echo 
    $dtl['dtl1'] . '
    '
    ;
           echo 
    $dtl['dtl2'] . '
    '
    ;
       }

    traslando in CI, avrei due funzioni nel model.
    le funzioni le devo richiamare nel controller.
    solo che ho il problema di come passare il parametro al foreach, visto che il parametro è dinamico.
    non so se mi sono spiegato bene.....

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    In effetti non mi è molto chiaro, ma provo a rispondere ugualmente, magari ci prendo.

    Non puoi fare una prima funzione che ti restituisca un array con i colori e passare questo array ad una seconda funzione che esegue il secondo foreach?

  3. #3
    si hai centrato il problema.
    Codice PHP:
                foreach ($COLORI_QT as $col) {
                    foreach (
    $TAGLIE as $tg) {
                        foreach (
    $this->collezioni_model->getGiacenzaPerArticolo($this->uri->segment(2), $col->colore_id$tg->tg_id) as $key => $val) {
                            
    $data['quantita'] = $val;
                        }
                    }
                } 
    con print_r ho visto che i valori sono giusti.
    solo che non riesco a passare $data['quantita'] alla view.
    Codice PHP:
     <?php
                            
    foreach ($quantita as $qt) {
                                echo 
    $qt->giac_id;
                            }
                            
    ?>
    ottengo un errore Message: Trying to get property of non-object

  4. #4
    Codice PHP:
     <?php
                            
    foreach ($quantita as $qt) {
                                
    $giacId $qt['giac_id'];
                                
    $upQt $qt['giac_qt'];
                            }
                            
    ?>
    arrivano sotto forma di array e non di oggetti.
    così funziona.
    ciao!

  5. #5
    come non detto.
    lasciate perdere l'ultimo post.

    i valori nella pagina mi arrivano così:
    Codice PHP:
     <?php
                            
    foreach ($quantita as $qt) {
                                
    $giacId $qt['giac_id'];
                                
    $upQt $qt['giac_qt'];
                                
    print_r($quantita);
                            }
                            
    ?>
    stdClass Object ( [giac_id] => 15 [articolo_fk] => 1 [colore_fk] => 6 [taglia_fk] => 5 [giac_qt] => 5 [giac_visibile] => 1 )
    in pratica sulla pagina non mi arriva un array di oggetti, ma direttamente oggetti.
    come posso fare??

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    foreach ($quantita->result_array() as $qt) { ...

  7. #7
    allora ho fatto così:
    CONTROLLER:
    Codice PHP:
                foreach ($COLORI_QT as $col) {
                    foreach (
    $TAGLIE as $tg) {
                        foreach (
    $this->collezioni_model->getGiacenzaPerArticolo($this->uri->segment(2), $col->colore_id$tg->tg_id) as $val) {
                            
    $data['quantita'] = $val;
                        }
                    }
                } 
    VIEW:
    Codice PHP:
                       <?php
                            
    foreach ($quantita->result_array() as $qt) {
                                
    print_r($qt);
                            }
                            
    ?>
    diciamo che la pagina non funziona.

  8. #8
    mi ero accorto che c'era anche un problema nel controller:
    Codice PHP:
                $data['quantita'] = array();
                foreach (
    $COLORI_QT as $col) {
                    foreach (
    $TAGLIE as $tg) {
                        foreach (
    $this->collezioni_model->getGiacenzaPerArticolo($this->uri->segment(2), $col->colore_id$tg->tg_id) as $val) {
                            
    array_push($data['quantita'], $val);
                        }
                    }
                }
                
    print_r($data['quantita']); 
    adesso print_r mi mostra i dati giusti.
    però continuo ad averli sballati nella view.
    più che altro mi escono una infinità di righe:
    Codice PHP:
                            <?php
                            
    foreach ($quantita as $qt) {
                                
    print_r($quantita);
                            }
                            
    ?>
    anche se in realtà dovrebbero coincidere.

  9. #9
    capito il problema.
    in pratica dentro alla view avevo messo quel foreach dentro altri foreach.
    e quindi invece di restituirimi, ad esempio:
    2222
    mi dava:
    2222 2222 2222......
    repetuti per tutti i foreach.
    infatti mettendo quello specifico foreach fuori dagli altri adesso mi da i risultati giusti.
    il problema però è che quei valori li devo passare a delle input text che stanno dentro agli altri foreach.
    e ora come ora gli arriva sempre l'ultimo valore.
    per fare un esempio concreto, questi sono i valori:
    100005555566666

    nelle input c'è solo il 6.

  10. #10
    da quanto ho capito il problema sono i foreach e come vengono gestiti da CI.
    il controller mi restituisce i risultati giusti.
    10 array di oggetti ben valorizzati.
    il problema è nella view.
    Codice PHP:
    <?php foreach ($articolo as $var): ?> 
        <div id="img_articolo">
            <?php
            
    echo img(array(
                
    'src' => 'http://www.chiarabaschieri.it/ESHOP/pe2012/small/' str_replace('\\''-'$var->art_modello) . '.jpg',
                
    'class' => 'img_zoom',
                
    'width' => '1024',
                
    'height' => '768'
            
    ));
            
    ?>
        </div>
        <div id="dtl_articolo">
            <?php
            
    foreach ($quantita as $qt): // PRENDO LE QUANTITA
                
    $giacId $qt->giac_id;
                
    $upQt $qt->giac_qt;
                
    print_r($qt->giac_qt);
            endforeach;
            
    ?>
            

    <?php echo $var->art_modello?></p>
            

    <?php echo $var->$lang['allDesc']; ?></p>
            <table border="1">
                <tr>
                    <td></td>
                    <?php foreach ($taglie as $tg): ?>
                        <td><?php echo $tg->tg_taglia?></td>
                    <?php endforeach; ?>
                </tr>
                <?php foreach ($coloriQt as $cq): ?>
                    <tr>
                        <td><?php echo $cq->colore_ita?></td>
                        <?php foreach ($taglie as $tgQt): ?> 
                            <td>
                                <input type="text" value="<?php echo $upQt?>" name="qt_gc[]" size="2" onkeypress="return soloNumeri(event);" />
                                <input type="hidden" value="<?php echo $giacId?>" name="id_gc[]" size="2" />
                                <input type="hidden" value="<?php echo $tgQt->tg_id?>" name="tg_gc[]" size="2" />
                                <input type="hidden" value="<?php echo $cq->colore_id?>" name="cl_gc[]" size="2" />
                            </td>
                        <?php endforeach; ?>
                    </tr>
                <?php endforeach; ?>
            </table>
        </div>
        <div class="clear"></div>
    <?php endforeach; ?>
    se metto il ciclo delle quantità la, ottengo i valori giusti, e non ripetuti.
    il problema è che la input viene valorizzata sempre con l'ultimo valore.

    se qualcuno ha un suggerimento mi farebbe un gran favore, sennò sarò costretto ad abbandonare CI e fare a mano

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.