Welcome Guest, Not a member yet? Register   Sign In
Associate one element with another
#1

(This post was last modified: 04-04-2024, 09:33 AM by elbambolo.)

Good morning,
I'm trying to create a page in which the user must associate one element with another.
Once an item is selected, that item cannot be selected again.
In practice, the user must select a content for each box.

I was thinking of using Jquery UI Droppable, putting 5 empty boxes on the left and 5 elements on the right.

Has anyone ever used this method?

is there an easier way?
obviously there will be checks on objects and positions.

once the user is done, I will save the choice inside the mysql database.
I'm currently using codeigniter 4 with a local installation, on a linux server.

result image
Reply
#2

Didn't use it. I think you are in the right direction. Don't bother checking the received values in the controller, don't trust JS
Reply
#3

(This post was last modified: 04-05-2024, 03:36 AM by Bosborne.)

I am also a newbie and do not have a direct answer to your question.

I moved to Codeigniter because of its speed but, previously, I noticed that just loading jquery was consuming a lot of pages loading time., I am definitely no JS expert but, from my understanding, I know of no reason to use JQuery except for possibly familiarity with its syntax.

I believe JQuery existed primarily for 2 reasons.. For cross browser compatibility Abe to extend JS. Browsers have now pretty much standardized on JS versions and newer versions have implemented most all JQuery functionality but with a different syntax.
Personally, I only use some occasional JS for things like automatic form submission.

I just thought  this was worth mentioning as something to consider.

Bruce
Reply
#4

obviously as an inexperienced person, I thought that using jquery to solve this problem was the simplest way.
  but from what I see, it is better to take another path.

I'm currently stuck. Using only php and html I can get the data from the database and dynamically populate the various <select><option>s.

I'm stuck here and can't move forward. I can't make it so that if the user selects a food on the first day, then that food should not appear in the <options> of the other days.

For example:
breakfast 1: strawberries
breakfast 2: yogurt
breakfast 3: milk

can't pick strawberries for two days. therefore in the select, if on the first day it selects strawberries, in the other two <select> in the <option>strawberries, there must be disabled. or I don't know, since they are loaded dynamically, exclude strawberries from the loader if already loaded in the previous <select>.

honestly I've been stuck here for a few days and I have no ideas on how to move forward.

this is my view:

Code:
<section class="intro container">
    <div class="row">
        <div class="span12">
            <p>Seleziona i piatti che vuoi inserire nel tuo menù settimanale. Puoi selezionare fino a 7 piatti per ogni pasto della giornata.</p>

            <?php
            $startDate = new DateTime($assegnazioneMemory->data);
            $endDate = new DateTime($assegnazioneMemory->data_fine);
            $endDate->modify('+1 day'); // Include the end date in the period
            $interval = new DateInterval('P1D');
            $period = new DatePeriod($startDate, $interval, $endDate);
            $numeroColazioni = new DatePeriod($startDate, $interval, $endDate);
            $giorni = array('Domenica', 'Lunedì', 'Martedì', 'Mercoledì', 'Giovedì', 'Venerdì', 'Sabato');
            ?>

            <form action="<?= base_url('questo-poi-lo-vediamo') ?>" method="post">

                <table class="table table-bordered text-center">
                    <thead>
                        <tr>
                            <th>Giorno</th>
                            <th>Colazione</th>
                            <th>Pranzo</th>
                            <th>Cena</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php $i = 1; ?>
                        <?php foreach ($period as $date) :
                        ?>
                            <tr>
                                <td> <?php $dayNumber = date("w", strtotime($date->format('Y-m-d')));
                                        $dayName = $giorni[$dayNumber];
                                        $extendedDate = date("d", strtotime($date->format('Y-m-d')));
                                        echo "$dayName $extendedDate";
                                        ?>
                                    <input type="hidden" name="data<?= $i ?>" value="<?= $date->format('Y-m-d') ?>">
                                <td>
                                    <select class="form-select" id="colazione">
                                        <option selected>Seleziona colazione <?= $i ?></option>

                                        <?php
                                        $a = 0;
                                        foreach ($numeroColazioni as $giorno) {
                                            $a++; ?>
                                            <option carboidrati='
                                            <?php
                                            if (${'colazione' . $a}->alimento_1_c == 1 || ${'colazione' . $a}->alimento_2_c == 1 || ${'colazione' . $a}->alimento_3_c == 1 || ${'colazione' . $a}->alimento_4_c == 1) {
                                                echo "1";
                                            } else {
                                                echo "0";
                                            }
                                            ?>' value='<?= strval($programmaMemory->{'colazione' . $a . '_id'}) ?>'><?= strval($programmaMemory->{'colazione' . $a}) ?></option>;
                                        <?php
                                        }
                                        ?>
                                    </select>
                                </td>
                                <td>
                                    <select class="form-select" id="pranzo">
                                        <option selected>Seleziona pranzo <?= $i ?></option>
                                        <?php
                                        $a = 0;
                                        foreach ($numeroColazioni as $giorno) {
                                            $a++; ?>
                                            <option carboidrati='
                                            <?php
                                            if (${'pranzo' . $a}->alimento_1_c == 1 || ${'pranzo' . $a}->alimento_2_c == 1 || ${'pranzo' . $a}->alimento_3_c == 1 || ${'pranzo' . $a}->alimento_4_c == 1) {
                                                echo "1";
                                            } else {
                                                echo "0";
                                            }
                                            ?>' value='<?= strval($programmaMemory->{'pranzo' . $a . '_id'}) ?>'><?= strval($programmaMemory->{'pranzo' . $a}) ?></option>;
                                        <?php
                                        }
                                        ?>
                                    </select>
                            </td>
                                <td>
                                    <select class="form-select" id="cena">
                                        <option selected>Seleziona cena <?= $i ?></option>
                                        <?php
                                        $a = 0;
                                        foreach ($numeroColazioni as $giorno) {
                                            $a++; ?>
                                            <option carboidrati='
                                            <?php
                                            if (${'cena' . $a}->alimento_1_c == 1 || ${'cena' . $a}->alimento_2_c == 1 || ${'cena' . $a}->alimento_3_c == 1 || ${'cena' . $a}->alimento_4_c == 1) {
                                                echo "1";
                                            } else {
                                                echo "0";
                                            }
                                            ?>' value='<?= strval($programmaMemory->{'cena' . $a . '_id'}) ?>'><?= strval($programmaMemory->{'cena' . $a}) ?></option>;
                                        <?php
                                        }
                                        ?>
                                    </select>
                            </td>
                            </tr>
                        <?php $i++;
                        endforeach;
                        ?>
                    </tbody>
                </table>

            </form>
        </div>

</section>

and this, controller:

Code:
<?php

namespace App\Controllers;

use App\Models\AdminProgrammaMemoryModel;
use App\Models\AdminPiattiCompostiModel;
use App\Models\AdminAssegnazioneMemoryModel;
use App\Models\AdminPiattiBaseModel;

class AdminProgrammaMemoryController extends BaseController
{
    public function listaProgrammiMemory()
    {
        $data = [
            'title_meta' => view('partials/title-meta', ['title' => 'Lista programmi memory']),
            'page_title' => view('partials/page-title', ['title' => 'Lista programmi memory', 'li_1' => 'Programmi', 'li_2' => 'Lista programmi memory'])
        ];

        $adminProgrammaMemoryModel = new AdminProgrammaMemoryModel();
        $data['listaProgrammiMemory'] = $adminProgrammaMemoryModel->listaProgrammiMemory();

        return view('lista-programmi-memory', $data);
    }

    public function modificaProgrammaMemory()
    {
        $adminProgrammaMemoryModel = new AdminProgrammaMemoryModel();

        $id = $this->request->getVar('id_programma_memory');
        $data = [
            'nome' => $this->request->getVar('nome'),
            'colazione_1' => $this->request->getVar('colazione_1'),
            'colazione_2' => $this->request->getVar('colazione_2'),
            'colazione_3' => $this->request->getVar('colazione_3'),
            'colazione_4' => $this->request->getVar('colazione_4'),
            'colazione_5' => $this->request->getVar('colazione_5'),
            'colazione_6' => $this->request->getVar('colazione_6'),
            'colazione_7' => $this->request->getVar('colazione_7'),
            'pranzo_1' => $this->request->getVar('pranzo_1'),
            'pranzo_2' => $this->request->getVar('pranzo_2'),
            'pranzo_3' => $this->request->getVar('pranzo_3'),
            'pranzo_4' => $this->request->getVar('pranzo_4'),
            'pranzo_5' => $this->request->getVar('pranzo_5'),
            'pranzo_6' => $this->request->getVar('pranzo_6'),
            'pranzo_7' => $this->request->getVar('pranzo_7'),
            'cena_1' => $this->request->getVar('cena_1'),
            'cena_2' => $this->request->getVar('cena_2'),
            'cena_3' => $this->request->getVar('cena_3'),
            'cena_4' => $this->request->getVar('cena_4'),
            'cena_5' => $this->request->getVar('cena_5'),
            'cena_6' => $this->request->getVar('cena_6'),
            'cena_7' => $this->request->getVar('cena_7'),
            'note' => $this->request->getVar('note')
        ];
        $adminProgrammaMemoryModel->update($id, $data);
        return redirect()->to('/dettaglio-programma-memory/' . $id);
    }

    public function eliminaProgrammaMemory($id_programma_memory = NULL)
    {
        $adminProgrammaMemoryModel = new AdminProgrammaMemoryModel();
        $adminProgrammaMemoryModel->delete($id_programma_memory);
        return redirect()->to('/lista-programmi-memory');
    }

    public function dettaglioProgrammaMemory($id_programma_memory = NULL)
    {
        $data = [
            'title_meta' => view('partials/title-meta', ['title' => 'Dettaglio programma memory']),
            'page_title' => view('partials/page-title', ['title' => 'Dettaglio programma memory', 'li_1' => 'Programmi', 'li_2' => 'Dettaglio programma memory'])
        ];

        $adminProgrammaMemoryModel = new AdminProgrammaMemoryModel();
        $data['programmaMemory'] = $adminProgrammaMemoryModel->dettaglioProgrammaMemory($id_programma_memory);
        $adminPiattiCompostiModel = new AdminPiattiCompostiModel();
        $data['listaPiattiComposti'] = $adminPiattiCompostiModel->scaricaPiattiComposti();

        return view('dettaglio-programma-memory', $data);
    }

    public function creaProgrammaMemory()
    {
        $data = [
            'title_meta' => view('partials/title-meta', ['title' => 'Crea programma memory']),
            'page_title' => view('partials/page-title', ['title' => 'Crea programma memory', 'li_1' => 'Programmi', 'li_2' => 'Crea programma memory'])
        ];

        $adminPiattiCompostiModel = new AdminPiattiCompostiModel();
        $data['listaPiattiComposti'] = $adminPiattiCompostiModel->scaricaPiattiComposti();

        return view('crea-programma-memory', $data);
    }

    public function inserisciProgrammaMemory()
    {
        $data = [
            'nome' => $this->request->getVar('nome'),
            'colazione_1' => $this->request->getVar('colazione_1'),
            'colazione_2' => $this->request->getVar('colazione_2'),
            'colazione_3' => $this->request->getVar('colazione_3'),
            'colazione_4' => $this->request->getVar('colazione_4'),
            'colazione_5' => $this->request->getVar('colazione_5'),
            'colazione_6' => $this->request->getVar('colazione_6'),
            'colazione_7' => $this->request->getVar('colazione_7'),
            'pranzo_1' => $this->request->getVar('pranzo_1'),
            'pranzo_2' => $this->request->getVar('pranzo_2'),
            'pranzo_3' => $this->request->getVar('pranzo_3'),
            'pranzo_4' => $this->request->getVar('pranzo_4'),
            'pranzo_5' => $this->request->getVar('pranzo_5'),
            'pranzo_6' => $this->request->getVar('pranzo_6'),
            'pranzo_7' => $this->request->getVar('pranzo_7'),
            'cena_1' => $this->request->getVar('cena_1'),
            'cena_2' => $this->request->getVar('cena_2'),
            'cena_3' => $this->request->getVar('cena_3'),
            'cena_4' => $this->request->getVar('cena_4'),
            'cena_5' => $this->request->getVar('cena_5'),
            'cena_6' => $this->request->getVar('cena_6'),
            'cena_7' => $this->request->getVar('cena_7'),
            'note' => $this->request->getVar('note')
        ];
        $adminProgrammaMemoryModel = new AdminProgrammaMemoryModel();
        $adminProgrammaMemoryModel->creaNuovoProgrammaMemory($data);

        //questa funziona và sistemata!!!

        if ($adminProgrammaMemoryModel->getInsertID()) {
            $message = "Inserimento avvenuto con successo.";
        } else {
            $message = "Errore durante l'inserimento.";
        }

        return redirect()->to('/lista-programmi-memory')->with('message', $message);
    }

    public function assegnaProgrammaMemory()
    {
        $adminAssegnazioneMemoryModel = new AdminAssegnazioneMemoryModel();
        $data = [
            'id_utente' => $this->request->getVar('id_utente'),
            'id_programma_memory' => $this->request->getVar('selectInput'),
            'data' => $this->request->getVar('data'),
            'data_fine' => $this->request->getVar('data_fine')
        ];
        $adminAssegnazioneMemoryModel->assegnaMemory($data);

        return redirect()->to(base_url('visualizza-programma-memory/' . $this->request->getVar('id_utente')));
    }

    public function visualizzaProgrammaMemoryAssegnato()
    {
        $data = [
            'title_meta' => view('partials/title-meta', ['title' => 'Visualizza programma memory']),
            'page_title' => view('partials/page-title', ['title' => 'Visualizza programma memory', 'li_1' => 'Programmi', 'li_2' => 'Visualizza programma memory'])
        ];

        $id = auth()->id();

        $adminAssegnazioneMemoryModel = new AdminAssegnazioneMemoryModel();
        $data['assegnazioneMemory'] = $adminAssegnazioneMemoryModel->getAssegnazioneMemory($id);

        $adminProgrammaMemoryModel = new AdminProgrammaMemoryModel();
        $data['programmaMemory'] = $adminProgrammaMemoryModel->dettaglioProgrammaMemory($data['assegnazioneMemory']->id_programma_memory);
        $colazioneIds = [
            $data['programmaMemory']->colazione1_id,
            $data['programmaMemory']->colazione2_id,
            $data['programmaMemory']->colazione3_id,
            $data['programmaMemory']->colazione4_id,
            $data['programmaMemory']->colazione5_id,
            $data['programmaMemory']->colazione6_id,
            $data['programmaMemory']->colazione7_id,
        ];

        foreach ($colazioneIds as $key => $colazioneId) {
            $data['colazione' . ($key + 1)] = $this->scaricaListaDettaglioAlimenti($colazioneId);
        }
        $pranzoIds = [
            $data['programmaMemory']->pranzo1_id,
            $data['programmaMemory']->pranzo2_id,
            $data['programmaMemory']->pranzo3_id,
            $data['programmaMemory']->pranzo4_id,
            $data['programmaMemory']->pranzo5_id,
            $data['programmaMemory']->pranzo6_id,
            $data['programmaMemory']->pranzo7_id,
        ];
        foreach ($pranzoIds as $key => $pranzoId) {
            $data['pranzo' . ($key + 1)] = $this->scaricaListaDettaglioAlimenti($pranzoId);
        }

        $cenaIds = [
            $data['programmaMemory']->cena1_id,
            $data['programmaMemory']->cena2_id,
            $data['programmaMemory']->cena3_id,
            $data['programmaMemory']->cena4_id,
            $data['programmaMemory']->cena5_id,
            $data['programmaMemory']->cena6_id,
            $data['programmaMemory']->cena7_id,
        ];
        foreach ($cenaIds as $key => $cenaId) {
            $data['cena' . ($key + 1)] = $this->scaricaListaDettaglioAlimenti($cenaId);
        }

        return view('utente/compila-programma-memory', $data);
    }
    private function scaricaListaDettaglioAlimenti($id_piatto_composto)
    {
        $adminPiattiCompostiModel = new AdminPiattiCompostiModel();
        $listaPiattiComposti = $adminPiattiCompostiModel->dettaglioAlimento($id_piatto_composto);
        return $listaPiattiComposti;
    }

    private function controlloCarboidrati($alimento_1_c, $alimento_2_c, $alimento_3_c, $alimento_4_c)
    {
        if ($alimento_1_c == 1 || $alimento_2_c == 1 || $alimento_3_c == 1 || $alimento_4_c == 1) {
            return "1";
        } else {
            return "0";
        }
    }

}

I truly appreciate any advice and suggestions
Reply
#5

I think you were close with JQuery. PHP itself is server side processing. For dynamic pages you either need some form of JavaScript or many server queries to update the page. The Laravel framework has Livewire which sends data to the server & receives page updates it inserts into the browser view. From my limited research, something similar may be accomplished with htmx but I am not sure.

I too am interested in hearing from more experienced developers. I miss using Livewire after moving from Laravel to Codeigniter.
Reply
#6

a little update. I'm moving forward one step at a time in solving the problem. I'm currently trying to do this.
I divide the problem into days.
for each day I have 1 breakfast 1 lunch and 1 dinner.
the first selection is simple. the user selects what he wants and I insert it into the database.
I have two parallel tables.
in one table I have the list of foods, in the second table, with initial value == 0, I have the selection of users.

for each day, if value != 0, I remove that food from the select, disabling it.

and I proceed like this for each day, entering the single day for the remaining 7 days of the week.

I'll post the code of what I've done so far.

If anyone has any advice, it's always welcome

Controller:


Code:
    public function creaProgrammaMemory($giornata = NULL, $id_programma_memory = NULL)
    {
        $data = [
            'title_meta' => view('partials/title-meta', ['title' => 'Crea programma memory']),
            'page_title' => view('partials/page-title', ['title' => 'Crea programma memory', 'li_1' => 'Programmi', 'li_2' => 'Crea programma memory'])
        ];

        //lista dei piatti già usati, negli altri giorni
        $adminAssegnazioneMemoryModel = new AdminAssegnazioneMemoryModel();
        $data['piattiAltriGiorni'] = $adminAssegnazioneMemoryModel->scaricaPiattiAltriGiorni($id_programma_memory);

        //scarica la lista dei piatti assegnati all'utente
        $adminProgrammaMemoryModel = new AdminProgrammaMemoryModel();
        $data['programmaMemory'] = $adminProgrammaMemoryModel->dettaglioProgrammaMemory($id_programma_memory);

        //crea l'array con i piatti composti, selezionabili e con la presenza o meno dei carboidrati
        $adminPiattiCompostiModel = new AdminPiattiCompostiModel();
        $data['dettaglioColazione1'] = $adminPiattiCompostiModel->dettaglioAlimento($data['programmaMemory']->colazione1_id);
        $data['dettaglioColazione2'] = $adminPiattiCompostiModel->dettaglioAlimento($data['programmaMemory']->colazione2_id);
        $data['dettaglioColazione3'] = $adminPiattiCompostiModel->dettaglioAlimento($data['programmaMemory']->colazione3_id);
        $data['dettaglioColazione4'] = $adminPiattiCompostiModel->dettaglioAlimento($data['programmaMemory']->colazione4_id);
        $data['dettaglioColazione5'] = $adminPiattiCompostiModel->dettaglioAlimento($data['programmaMemory']->colazione5_id);
        $data['dettaglioColazione6'] = $adminPiattiCompostiModel->dettaglioAlimento($data['programmaMemory']->colazione6_id);
        $data['dettaglioColazione7'] = $adminPiattiCompostiModel->dettaglioAlimento($data['programmaMemory']->colazione7_id);

        $data['dettaglioPranzo1'] = $adminPiattiCompostiModel->dettaglioAlimento($data['programmaMemory']->pranzo1_id);
        $data['dettaglioPranzo2'] = $adminPiattiCompostiModel->dettaglioAlimento($data['programmaMemory']->pranzo2_id);
        $data['dettaglioPranzo3'] = $adminPiattiCompostiModel->dettaglioAlimento($data['programmaMemory']->pranzo3_id);
        $data['dettaglioPranzo4'] = $adminPiattiCompostiModel->dettaglioAlimento($data['programmaMemory']->pranzo4_id);
        $data['dettaglioPranzo5'] = $adminPiattiCompostiModel->dettaglioAlimento($data['programmaMemory']->pranzo5_id);
        $data['dettaglioPranzo6'] = $adminPiattiCompostiModel->dettaglioAlimento($data['programmaMemory']->pranzo6_id);
        $data['dettaglioPranzo7'] = $adminPiattiCompostiModel->dettaglioAlimento($data['programmaMemory']->pranzo7_id);

        $data['dettaglioCena1'] = $adminPiattiCompostiModel->dettaglioAlimento($data['programmaMemory']->cena1_id);
        $data['dettaglioCena2'] = $adminPiattiCompostiModel->dettaglioAlimento($data['programmaMemory']->cena2_id);
        $data['dettaglioCena3'] = $adminPiattiCompostiModel->dettaglioAlimento($data['programmaMemory']->cena3_id);
        $data['dettaglioCena4'] = $adminPiattiCompostiModel->dettaglioAlimento($data['programmaMemory']->cena4_id);
        $data['dettaglioCena5'] = $adminPiattiCompostiModel->dettaglioAlimento($data['programmaMemory']->cena5_id);
        $data['dettaglioCena6'] = $adminPiattiCompostiModel->dettaglioAlimento($data['programmaMemory']->cena6_id);
        $data['dettaglioCena7'] = $adminPiattiCompostiModel->dettaglioAlimento($data['programmaMemory']->cena7_id);

        //colazione 1
        $colazione1_c = 0;
        $selezionabile = NULL;
        if ($data['dettaglioColazione1']->alimento_1_c == 1 || $data['dettaglioColazione1']->alimento_2_c == 1 || $data['dettaglioColazione1']->alimento_3_c == 1 || $data['dettaglioColazione1']->alimento_4_c == 1) {
            $colazione1_c =1;
        }

        if ($data['piattiAltriGiorni']->colazione_utente_1 != 0)
        {
            $selezionabile = "disabled";
        }

        $pasto['colazione1'] = [
            'id' => $data['programmaMemory']->colazione1_id,
            'nome' => $data['dettaglioColazione1']->nome,
            'selezionabile' => $selezionabile,
            'carboidrati' => $colazione1_c
        ];

        //colazione 2
        $colazione2_c = 0;
        $selezionabile = NULL;
        if ($data['dettaglioColazione2']->alimento_1_c == 1 || $data['dettaglioColazione2']->alimento_2_c == 1 || $data['dettaglioColazione2']->alimento_3_c == 1 || $data['dettaglioColazione2']->alimento_4_c == 1) {
            $colazione2_c =1;
        }

        if ($data['piattiAltriGiorni']->colazione_utente_2 != 0)
        {
            $selezionabile = "disabled";
        }

        $pasto['colazione2'] = [
            'id' => $data['programmaMemory']->colazione2_id,
            'nome' => $data['dettaglioColazione2']->nome,
            'selezionabile' => $selezionabile,
            'carboidrati' => $colazione2_c
        ];

        //colazione 3
        $colazione3_c = 0;
        $selezionabile = NULL;
        if ($data['dettaglioColazione3']->alimento_1_c == 1 || $data['dettaglioColazione3']->alimento_2_c == 1 || $data['dettaglioColazione3']->alimento_3_c == 1 || $data['dettaglioColazione3']->alimento_4_c == 1) {
            $colazione3_c =1;
        }

        if ($data['piattiAltriGiorni']->colazione_utente_3 != 0)
        {
            $selezionabile = "disabled";
        }

        $pasto['colazione3'] = [
            'id' => $data['programmaMemory']->colazione3_id,
            'nome' => $data['dettaglioColazione3']->nome,
            'selezionabile' => $selezionabile,
            'carboidrati' => $colazione3_c
        ];

        //colazione 4
        $colazione4_c = 0;
        $selezionabile = NULL;
        if ($data['dettaglioColazione4']->alimento_1_c == 1 || $data['dettaglioColazione4']->alimento_2_c == 1 || $data['dettaglioColazione4']->alimento_3_c == 1 || $data['dettaglioColazione4']->alimento_4_c == 1) {
            $colazione4_c =1;
        }

        if ($data['piattiAltriGiorni']->colazione_utente_4 != 0)
        {
            $selezionabile = "disabled";
        }

        $pasto['colazione4'] = [
            'id' => $data['programmaMemory']->colazione4_id,
            'nome' => $data['dettaglioColazione4']->nome,
            'selezionabile' => $selezionabile,
            'carboidrati' => $colazione4_c
        ];

        //colazione 5
        $colazione5_c = 0;
        $selezionabile = NULL;
        if ($data['dettaglioColazione5']->alimento_1_c == 1 || $data['dettaglioColazione5']->alimento_2_c == 1 || $data['dettaglioColazione5']->alimento_3_c == 1 || $data['dettaglioColazione5']->alimento_4_c == 1) {
            $colazione5_c =1;
        }

        if ($data['piattiAltriGiorni']->colazione_utente_5 != 0)
        {
            $selezionabile = "disabled";
        }

        $pasto['colazione5'] = [
            'id' => $data['programmaMemory']->colazione5_id,
            'nome' => $data['dettaglioColazione5']->nome,
            'selezionabile' => $selezionabile,
            'carboidrati' => $colazione5_c
        ];

        //colazione 6
        $colazione6_c = 0;
        $selezionabile = NULL;
        if ($data['dettaglioColazione6']->alimento_1_c == 1 || $data['dettaglioColazione6']->alimento_2_c == 1 || $data['dettaglioColazione6']->alimento_3_c == 1 || $data['dettaglioColazione6']->alimento_4_c == 1) {
            $colazione6_c =1;
        }

        if ($data['piattiAltriGiorni']->colazione_utente_6 != 0)
        {
            $selezionabile = "disabled";
        }

        $pasto['colazione6'] = [
            'id' => $data['programmaMemory']->colazione6_id,
            'nome' => $data['dettaglioColazione6']->nome,
            'selezionabile' => $selezionabile,
            'carboidrati' => $colazione6_c
        ];

        //colazione 7
        $colazione7_c = 0;
        $selezionabile = NULL;
        if ($data['dettaglioColazione7']->alimento_1_c == 1 || $data['dettaglioColazione7']->alimento_2_c == 1 || $data['dettaglioColazione7']->alimento_3_c == 1 || $data['dettaglioColazione7']->alimento_4_c == 1) {
            $colazione7_c =1;
        }

        if ($data['piattiAltriGiorni']->colazione_utente_7 != 0)
        {
            $selezionabile = "disabled";
        }

        $pasto['colazione7'] = [
            'id' => $data['programmaMemory']->colazione7_id,
            'nome' => $data['dettaglioColazione7']->nome,
            'selezionabile' => $selezionabile,
            'carboidrati' => $colazione7_c
        ];

        //pranzo 1
        $pranzo1_c = 0;
        $selezionabile = NULL;
        if ($data['dettaglioPranzo1']->alimento_1_c == 1 || $data['dettaglioPranzo1']->alimento_2_c == 1 || $data['dettaglioPranzo1']->alimento_3_c == 1 || $data['dettaglioPranzo1']->alimento_4_c == 1) {
            $pranzo1_c =1;
        }

        if ($data['piattiAltriGiorni']->pranzo_utente_1 != 0)
        {
            $selezionabile = "disabled";
        }

        $pasto['pranzo1'] = [
            'id' => $data['programmaMemory']->pranzo1_id,
            'nome' => $data['dettaglioPranzo1']->nome,
            'selezionabile' => $selezionabile,
            'carboidrati' => $pranzo1_c
        ];

        //pranzo 2
        $pranzo2_c = 0;
        $selezionabile = NULL;
        if ($data['dettaglioPranzo2']->alimento_1_c == 1 || $data['dettaglioPranzo2']->alimento_2_c == 1 || $data['dettaglioPranzo2']->alimento_3_c == 1 || $data['dettaglioPranzo2']->alimento_4_c == 1) {
            $pranzo2_c =1;
        }

        if ($data['piattiAltriGiorni']->pranzo_utente_2 != 0)
        {
            $selezionabile = "disabled";
        }

        $pasto['pranzo2'] = [
            'id' => $data['programmaMemory']->pranzo2_id,
            'nome' => $data['dettaglioPranzo2']->nome,
            'selezionabile' => $selezionabile,
            'carboidrati' => $pranzo2_c
        ];

        //pranzo 3
        $pranzo3_c = 0;
        $selezionabile = NULL;
        if ($data['dettaglioPranzo3']->alimento_1_c == 1 || $data['dettaglioPranzo3']->alimento_2_c == 1 || $data['dettaglioPranzo3']->alimento_3_c == 1 || $data['dettaglioPranzo3']->alimento_4_c == 1) {
            $pranzo3_c =1;
        }

        if ($data['piattiAltriGiorni']->pranzo_utente_3 != 0)
        {
            $selezionabile = "disabled";
        }

        $pasto['pranzo3'] = [
            'id' => $data['programmaMemory']->pranzo3_id,
            'nome' => $data['dettaglioPranzo3']->nome,
            'selezionabile' => $selezionabile,
            'carboidrati' => $pranzo3_c
        ];

        //pranzo 4
        $pranzo4_c = 0;
        $selezionabile = NULL;
        if ($data['dettaglioPranzo4']->alimento_1_c == 1 || $data['dettaglioPranzo4']->alimento_2_c == 1 || $data['dettaglioPranzo4']->alimento_3_c == 1 || $data['dettaglioPranzo4']->alimento_4_c == 1) {
            $pranzo4_c =1;
        }

        if ($data['piattiAltriGiorni']->pranzo_utente_4 != 0)
        {
            $selezionabile = "disabled";
        }

        $pasto['pranzo4'] = [
            'id' => $data['programmaMemory']->pranzo4_id,
            'nome' => $data['dettaglioPranzo4']->nome,
            'selezionabile' => $selezionabile,
            'carboidrati' => $pranzo4_c
        ];

        //pranzo 5
        $pranzo5_c = 0;
        $selezionabile = NULL;
        if ($data['dettaglioPranzo5']->alimento_1_c == 1 || $data['dettaglioPranzo5']->alimento_2_c == 1 || $data['dettaglioPranzo5']->alimento_3_c == 1 || $data['dettaglioPranzo5']->alimento_4_c == 1) {
            $pranzo5_c =1;
        }

        if ($data['piattiAltriGiorni']->pranzo_utente_5 != 0)
        {
            $selezionabile = "disabled";
        }

        $pasto['pranzo5'] = [
            'id' => $data['programmaMemory']->pranzo5_id,
            'nome' => $data['dettaglioPranzo5']->nome,
            'selezionabile' => $selezionabile,
            'carboidrati' => $pranzo5_c
        ];

        //pranzo 6
        $pranzo6_c = 0;
        $selezionabile = NULL;
        if ($data['dettaglioPranzo6']->alimento_1_c == 1 || $data['dettaglioPranzo6']->alimento_2_c == 1 || $data['dettaglioPranzo6']->alimento_3_c == 1 || $data['dettaglioPranzo6']->alimento_4_c == 1) {
            $pranzo6_c =1;
        }

        if ($data['piattiAltriGiorni']->pranzo_utente_6 != 0)
        {
            $selezionabile = "disabled";
        }

        $pasto['pranzo6'] = [
            'id' => $data['programmaMemory']->pranzo6_id,
            'nome' => $data['dettaglioPranzo6']->nome,
            'selezionabile' => $selezionabile,
            'carboidrati' => $pranzo6_c
        ];

        //pranzo 7
        $pranzo7_c = 0;
        $selezionabile = NULL;
        if ($data['dettaglioPranzo7']->alimento_1_c == 1 || $data['dettaglioPranzo7']->alimento_2_c == 1 || $data['dettaglioPranzo7']->alimento_3_c == 1 || $data['dettaglioPranzo7']->alimento_4_c == 1) {
            $pranzo7_c =1;
        }

        if ($data['piattiAltriGiorni']->pranzo_utente_7 != 0)
        {
            $selezionabile = "disabled";
        }

        $pasto['pranzo7'] = [
            'id' => $data['programmaMemory']->pranzo7_id,
            'nome' => $data['dettaglioPranzo7']->nome,
            'selezionabile' => $selezionabile,
            'carboidrati' => $pranzo7_c
        ];

        //cena 1
        $cena1_c = 0;
        $selezionabile = NULL;
        if ($data['dettaglioCena1']->alimento_1_c == 1 || $data['dettaglioCena1']->alimento_2_c == 1 || $data['dettaglioCena1']->alimento_3_c == 1 || $data['dettaglioCena1']->alimento_4_c == 1) {
            $cena1_c =1;
        }

        if ($data['piattiAltriGiorni']->cena_utente_1 != 0)
        {
            $selezionabile = "disabled";
        }

        $pasto['cena1'] = [
            'id' => $data['programmaMemory']->cena1_id,
            'nome' => $data['dettaglioCena1']->nome,
            'selezionabile' => $selezionabile,
            'carboidrati' => $cena1_c
        ];

        //cena 2
        $cena2_c = 0;
        $selezionabile = NULL;
        if ($data['dettaglioCena2']->alimento_1_c == 1 || $data['dettaglioCena2']->alimento_2_c == 1 || $data['dettaglioCena2']->alimento_3_c == 1 || $data['dettaglioCena2']->alimento_4_c == 1) {
            $cena2_c =1;
        }

        if ($data['piattiAltriGiorni']->cena_utente_2 != 0)
        {
            $selezionabile = "disabled";
        }

        $pasto['cena2'] = [
            'id' => $data['programmaMemory']->cena2_id,
            'nome' => $data['dettaglioCena2']->nome,
            'selezionabile' => $selezionabile,
            'carboidrati' => $cena2_c
        ];

        //cena 3
        $cena3_c = 0;
        $selezionabile = NULL;
        if ($data['dettaglioCena3']->alimento_1_c == 1 || $data['dettaglioCena3']->alimento_2_c == 1 || $data['dettaglioCena3']->alimento_3_c == 1 || $data['dettaglioCena3']->alimento_4_c == 1) {
            $cena3_c =1;
        }

        if ($data['piattiAltriGiorni']->cena_utente_3 != 0)
        {
            $selezionabile = "disabled";
        }

        $pasto['cena3'] = [
            'id' => $data['programmaMemory']->cena3_id,
            'nome' => $data['dettaglioCena3']->nome,
            'selezionabile' => $selezionabile,
            'carboidrati' => $cena3_c
        ];

        //cena 4
        $cena4_c = 0;
        $selezionabile = NULL;
        if ($data['dettaglioCena4']->alimento_1_c == 1 || $data['dettaglioCena4']->alimento_2_c == 1 || $data['dettaglioCena4']->alimento_3_c == 1 || $data['dettaglioCena4']->alimento_4_c == 1) {
            $cena4_c =1;
        }

        if ($data['piattiAltriGiorni']->cena_utente_4 != 0)
        {
            $selezionabile = "disabled";
        }

        $pasto['cena4'] = [
            'id' => $data['programmaMemory']->cena4_id,
            'nome' => $data['dettaglioCena4']->nome,
            'selezionabile' => $selezionabile,
            'carboidrati' => $cena4_c
        ];

        //cena 5
        $cena5_c = 0;
        $selezionabile = NULL;
        if ($data['dettaglioCena5']->alimento_1_c == 1 || $data['dettaglioCena5']->alimento_2_c == 1 || $data['dettaglioCena5']->alimento_3_c == 1 || $data['dettaglioCena5']->alimento_4_c == 1) {
            $cena5_c =1;
        }

        if ($data['piattiAltriGiorni']->cena_utente_5 != 0)
        {
            $selezionabile = "disabled";
        }

        $pasto['cena5'] = [
            'id' => $data['programmaMemory']->cena5_id,
            'nome' => $data['dettaglioCena5']->nome,
            'selezionabile' => $selezionabile,
            'carboidrati' => $cena5_c
        ];

        //cena 6
        $cena6_c = 0;
        $selezionabile = NULL;
        if ($data['dettaglioCena6']->alimento_1_c == 1 || $data['dettaglioCena6']->alimento_2_c == 1 || $data['dettaglioCena6']->alimento_3_c == 1 || $data['dettaglioCena6']->alimento_4_c == 1) {
            $cena6_c =1;
        }

        if ($data['piattiAltriGiorni']->cena_utente_6 != 0)
        {
            $selezionabile = "disabled";
        }

        $pasto['cena6'] = [
            'id' => $data['programmaMemory']->cena6_id,
            'nome' => $data['dettaglioCena6']->nome,
            'selezionabile' => $selezionabile,
            'carboidrati' => $cena6_c
        ];

        //cena 7
        $cena7_c = 0;
        $selezionabile = NULL;
        if ($data['dettaglioCena7']->alimento_1_c == 1 || $data['dettaglioCena7']->alimento_2_c == 1 || $data['dettaglioCena7']->alimento_3_c == 1 || $data['dettaglioCena7']->alimento_4_c == 1) {
            $cena7_c =1;
        }

        if ($data['piattiAltriGiorni']->cena_utente_7 != 0)
        {
            $selezionabile = "disabled";
        }

        $pasto['cena7'] = [
            'id' => $data['programmaMemory']->cena7_id,
            'nome' => $data['dettaglioCena7']->nome,
            'selezionabile' => $selezionabile,
            'carboidrati' => $cena7_c
        ];

        return view('utente/crea-programma-memory', $pasto);
    }

Model:

Code:
public function scaricaPiattiAltriGiorni($id_programma_utente)
      {
            $builder = $this->db->table('programma_memory_utente');
            $builder->select('colazione_utente_1, colazione_utente_2, colazione_utente_3, colazione_utente_4, colazione_utente_5, colazione_utente_6, colazione_utente_7, pranzo_utente_1, pranzo_utente_2, pranzo_utente_3, pranzo_utente_4, pranzo_utente_5, pranzo_utente_6, pranzo_utente_7, cena_utente_1, cena_utente_2, cena_utente_3, cena_utente_4, cena_utente_5, cena_utente_6, cena_utente_7');
            $builder->where('id_programma_utente', $id_programma_utente);
            $query = $builder->get();
            return $query->getRow();
      }


public function dettaglioProgrammaMemory($id_programma_memory)
{
    $builder = $this->db->table('programma_memory');
    $builder->select('id_programma_memory, programma_memory.nome, colazione_1.id_piatto_composto AS colazione1_id, colazione_1.nome AS colazione1, colazione_2.id_piatto_composto AS colazione2_id, colazione_2.nome AS colazione2, colazione_3.id_piatto_composto AS colazione3_id, colazione_3.nome AS colazione3, colazione_4.id_piatto_composto AS colazione4_id, colazione_4.nome AS colazione4, colazione_5.id_piatto_composto AS colazione5_id, colazione_5.nome AS colazione5, colazione_6.id_piatto_composto AS colazione6_id, colazione_6.nome AS colazione6, colazione_7.id_piatto_composto AS colazione7_id, colazione_7.nome AS colazione7, pranzo_1.id_piatto_composto AS pranzo1_id, pranzo_1.nome AS pranzo1, pranzo_2.id_piatto_composto AS pranzo2_id, pranzo_2.nome AS pranzo2, pranzo_3.id_piatto_composto AS pranzo3_id, pranzo_3.nome AS pranzo3, pranzo_4.id_piatto_composto AS pranzo4_id, pranzo_4.nome AS pranzo4, pranzo_5.id_piatto_composto AS pranzo5_id, pranzo_5.nome AS pranzo5, pranzo_6.id_piatto_composto AS pranzo6_id, pranzo_6.nome AS pranzo6, pranzo_7.id_piatto_composto AS pranzo7_id, pranzo_7.nome AS pranzo7, cena_1.id_piatto_composto AS cena1_id, cena_1.nome AS cena1, cena_2.id_piatto_composto AS cena2_id, cena_2.nome AS cena2, cena_3.id_piatto_composto AS cena3_id, cena_3.nome AS cena3, cena_4.id_piatto_composto AS cena4_id, cena_4.nome AS cena4, cena_5.id_piatto_composto AS cena5_id, cena_5.nome AS cena5, cena_6.id_piatto_composto AS cena6_id, cena_6.nome AS cena6, cena_7.id_piatto_composto AS cena7_id, cena_7.nome AS cena7, programma_memory.note');
    $builder->join('piatto_composto AS colazione_1', 'programma_memory.colazione_1 = colazione_1.id_piatto_composto', 'left');
    $builder->join('piatto_composto AS colazione_2', 'programma_memory.colazione_2 = colazione_2.id_piatto_composto', 'left');
    $builder->join('piatto_composto AS colazione_3', 'programma_memory.colazione_3 = colazione_3.id_piatto_composto', 'left');
    $builder->join('piatto_composto AS colazione_4', 'programma_memory.colazione_4 = colazione_4.id_piatto_composto', 'left');
    $builder->join('piatto_composto AS colazione_5', 'programma_memory.colazione_5 = colazione_5.id_piatto_composto', 'left');
    $builder->join('piatto_composto AS colazione_6', 'programma_memory.colazione_6 = colazione_6.id_piatto_composto', 'left');
    $builder->join('piatto_composto AS colazione_7', 'programma_memory.colazione_7 = colazione_7.id_piatto_composto', 'left');
    $builder->join('piatto_composto AS pranzo_1', 'programma_memory.pranzo_1 = pranzo_1.id_piatto_composto', 'left');
    $builder->join('piatto_composto AS pranzo_2', 'programma_memory.pranzo_2 = pranzo_2.id_piatto_composto', 'left');
    $builder->join('piatto_composto AS pranzo_3', 'programma_memory.pranzo_3 = pranzo_3.id_piatto_composto', 'left');
    $builder->join('piatto_composto AS pranzo_4', 'programma_memory.pranzo_4 = pranzo_4.id_piatto_composto', 'left');
    $builder->join('piatto_composto AS pranzo_5', 'programma_memory.pranzo_5 = pranzo_5.id_piatto_composto', 'left');
    $builder->join('piatto_composto AS pranzo_6', 'programma_memory.pranzo_6 = pranzo_6.id_piatto_composto', 'left');
    $builder->join('piatto_composto AS pranzo_7', 'programma_memory.pranzo_7 = pranzo_7.id_piatto_composto', 'left');
    $builder->join('piatto_composto AS cena_1', 'programma_memory.cena_1 = cena_1.id_piatto_composto', 'left');
    $builder->join('piatto_composto AS cena_2', 'programma_memory.cena_2 = cena_2.id_piatto_composto', 'left');
    $builder->join('piatto_composto AS cena_3', 'programma_memory.cena_3 = cena_3.id_piatto_composto', 'left');
    $builder->join('piatto_composto AS cena_4', 'programma_memory.cena_4 = cena_4.id_piatto_composto', 'left');
    $builder->join('piatto_composto AS cena_5', 'programma_memory.cena_5 = cena_5.id_piatto_composto', 'left');
    $builder->join('piatto_composto AS cena_6', 'programma_memory.cena_6 = cena_6.id_piatto_composto', 'left');
    $builder->join('piatto_composto AS cena_7', 'programma_memory.cena_7 = cena_7.id_piatto_composto', 'left');
    $builder->where('id_programma_memory', $id_programma_memory);
    return $builder->get()->getRow();
}


View:

Code:
<form>
                <label for="colazione">Colazione:</label>
                <select id="colazione" name="colazione">
                    <option value="0">Seleziona un piatto</option>
                    <!-- options per le colazioni -->
                        <option value="<?= $colazione1['id']; ?>" carboidrati="<?= $colazione1['carboidrati'] ?>" <?= $colazione1['selezionabile'] ?>><?= $colazione1['nome']; ?></option>
                        <option value="<?= $colazione2['id']; ?>" carboidrati="<?= $colazione2['carboidrati'] ?>" <?= $colazione2['selezionabile'] ?>><?= $colazione2['nome']; ?></option>
                        <option value="<?= $colazione3['id']; ?>" carboidrati="<?= $colazione3['carboidrati'] ?>" <?= $colazione3['selezionabile'] ?>><?= $colazione3['nome']; ?></option>
                        <option value="<?= $colazione4['id']; ?>" carboidrati="<?= $colazione4['carboidrati'] ?>" <?= $colazione4['selezionabile'] ?>><?= $colazione4['nome']; ?></option>
                        <option value="<?= $colazione5['id']; ?>" carboidrati="<?= $colazione5['carboidrati'] ?>" <?= $colazione5['selezionabile'] ?>><?= $colazione5['nome']; ?></option>
                        <option value="<?= $colazione6['id']; ?>" carboidrati="<?= $colazione6['carboidrati'] ?>" <?= $colazione6['selezionabile'] ?>><?= $colazione6['nome']; ?></option>
                        <option value="<?= $colazione7['id']; ?>" carboidrati="<?= $colazione7['carboidrati'] ?>" <?= $colazione7['selezionabile'] ?>><?= $colazione7['nome']; ?></option>
                </select>

                <label for="pranzo">Pranzo:</label>
                <select id="pranzo" name="pranzo">
                    <!-- options for pranzo menu -->
                </select>

                <label for="cena">Cena:</label>
                <select id="cena" name="cena">
                    <!-- options for cena menu -->
                </select>
            </form>
Reply




Theme © iAndrew 2016 - Forum software by © MyBB