简体   繁体   中英

Codeigniter getting multiple data in foreach in controller

I have a problem regarding my foreach loop wherein i cannot access the first array or the array[0] and i dont know the problem.

here is the controller:

$this->SessionCheck();
        $this->user->initialize($this->session->userdata('userid'));

        $this->load->model('project_model', 'Project');
        $ProjectID = $this->input->post('ProjectID');

        /***************** Intialize Project model ******************/
        $this->Project->Initialize($ProjectID);

        $Options = Work_breakdown_structure::$WithBaseTaskID;

        //$PhaseTaskID = (int)$this->input->get_post('TaskID',TRUE);

        $PhaseTaskID = $this->Project->getPhaseBaseTaskID($ProjectID);
        $postlist->PhaseTaskID = $this->Project->getPhaseBaseTaskID($ProjectID);
        $postlist->phaseList = $this->Project->LatestApplicablePlan->WBS->GetPhaseList($Options);

        if($PhaseTaskID == null)
        { }
        else
        {
            foreach($PhaseTaskID as $index=>$value)
            {
                $finalArr[$value['TaskName']] = $value['BasetaskID'];
                    $postlist->taskList = $this->Project->LatestApplicablePlan->WBS->GetWBS($finalArr[$value['TaskName']], $Options);
            }

                echo print_r($finalArr);

            for($x = 1 ; $x < 2 ; $x++)
            {
                //$postlist->taskList = $this->Project->LatestApplicablePlan->WBS->GetWBS($phaseID, $Options);
            }
        }
        $postlist->project = $ProjectID;
        return $this->load->view('MyToDoPhaseDropdown', $postlist);

here is my view:

 echo '<td style="padding-top:5x;font-size:14px;" colspan="2"> <br> Phases : ';
        echo '<select id="phases_select" style="width:400px;" onchange="search_filter()" >';
            echo '<option value="0" selected="selected"> Select Project Phase </option>';
                foreach($phaseList as $row) 
                {
                    if(preg_match("/^CYCLE/", strtoupper($row['TaskName'])))
                    {
                        foreach($row['Child'] as $child) 
                        {
                            echo '<option value="'. $child['TaskID']. '">';
                            echo $row['TaskName'].' > '.$child['TaskName'] . '</option>';
                        }
                    }
                    else
                    {
                        if($Iterate['BaseTaskID'] != $row['TaskID']) 
                        {
                            echo '<option value="'. $row['TaskID']. '">';
                            echo $row['TaskName'].'</option>';
                        }

                        foreach($taskList as $Iterate) 
                        {
                            if($row['TaskID'] == $Iterate['BaseTaskID'] ) 
                            {
                                echo '<option value="'. $row['TaskID']. '">';
                                echo $Iterate['TaskName'].' '.$Iterate['IterationNumber']. '</option>';
                            }
                        }
                    }
                }
        echo '</select>';
    echo '</td>';

The problem is that i need to get all the values into an array to pass it to the view. but i only get the latest value which is the 2nd data that i retrieve in the database.

What you are doing wrong is :

return $this->load->view('MyToDoPhaseDropdown', $postlist);

You need to set the data in a variable to be accessible in view : http://codeigniter.com/user_guide/general/views.html

$data = array('title' => 'My Title',
              'heading' => 'My Heading',
              'message' => 'My Message');

$this->load->view('MyToDoPhaseDropdown', $data);

And in view file : MyToDoPhaseDropdown.php

<html>
<?php 
//Access them like so
echo $title.$heading.$message; ?>
</html>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM