Я пытаюсь передать $ data из контроллера в View с помощью Json Encode. Возникает проблема в цикле For, где я не могу встраивать ("..") Правильно в формате HTML. Пожалуйста, помогите мне с этим.

Благодарность! :)

$data ='
   <div class="col-lg-12">
       <div class="ibox">
           <div class="ibox-title">
                <h5>Leave Table </h5>
           </div>
       <div class="ibox-content">
       <table class="table table-bordered" id="changeBlock">
           <thead>
                <tr>
                    <th>Agents</th>
                        '. for($i = 1; $i <= $days; $i++){
                            echo "<th class='w-30'>'.$i.'</th>";
                        } .'
                </tr>
            </thead>
            <tbody> 
                '.$cnt = count($agent_list); if(isset($agent_list) && ($agent_list != '')){ foreach($agent_list as $val) { $agent_id = $val['info']->ps_crm_agent_id;

                for($i = $cnt; $i <= $cnt ; $i++){
                    echo '<tr><td data-id="'.$agent_id.'">'.$val['info']->firstname.' '.$val['info']->lastname.'</td>';

                for($j = 1; $j <= $days; $j++){ 
                    if(!empty($val['leaves'])){
                        $key = array_search($j, array_column($val['leaves'], 'leave_date'));
                        if(is_numeric($key)){
                            echo '<td class="cell_style w-30 pointer" data-id-leaves= '.$val['leaves'][$key]['id_leaves'].' data-id='.$agent_id.' data-date="'.$j.'" style="background-color: '.$val['leaves'][$key]['color_code'].'"> </td>';
                        }else{
                            echo '<td class="cell_style w-30 pointer" data-id-leaves="0" data-id='.$agent_id.' data-date="'.$j.'"> </td>';
                        }
                    }else{  
                        echo '<td class="cell_style w-30 pointer" data-id-leaves="0" data-id='.$agent_id.' data-date="'.$j.'"> </td>';
                    }
                }
            echo '</tr>';
        } } }'
        </tbody>
      </table>
    </div>
 </div>
</div>';

   $data = $this->load->view('load_leave_calender', $data, TRUE);

** Столкнувшись с проблемой в **

   '. for($i = 1; $i <= $days; $i++){
      echo "<th class='w-30'>'.$i.'</th>";
   } .'
0
Pranav Chavan 26 Ноя 2019 в 10:29

1 ответ

Разместите for цикл вне:

$part = '';
for($i = 1; $i <= $days; $i++){
    $part .= '<th class="w-30">'.$i.'</th>';
}

Затем вы можете объединить его внутри вашей строки $data:

$data ='
   <div class="col-lg-12">
       <div class="ibox">
           <div class="ibox-title">
                <h5>Leave Table </h5>
           </div>
       <div class="ibox-content">
       <table class="table table-bordered" id="changeBlock">
           <thead>
                <tr>
                    <th>Agents</th>
                        '. $part .'
                </tr>
            </thead>';

Демо

0
Aksen P 26 Ноя 2019 в 10:45
@PranavChavan, пожалуйста. Вы можете принять этот ответ, если он полностью решил вашу проблему.
 – 
Aksen P
26 Ноя 2019 в 12:46
@PranavChavan, нет, ты не
 – 
Aksen P
27 Ноя 2019 в 09:35