2012-05-21 3 views
3

CI table->generate($data1, $data2, $data3)가 출력 안에 내 데이터와 같은 :CodeIgniter는 HTML 테이블 생성기는

<table> 
    <tr> 
     <td>data1</td> 
     <td>data2</td> 
     <td>data3</td> 
    </tr> 
</table> 

내가 각 셀 내에서 여러 $vars복잡한 셀 레이아웃 필요한 경우 :

$data1 = array('one', 'two', 'three'); 

내가 이런 걸 원하는 :

<table> 
    <tr> 
     <td> 
      <div class="caption">$data1[0]</div> 
      <span class="span1">$data1[1] and here goes <strong>$data1[2]</strong></span> 
     </td> 
     <td>...</td> 
     <td>...</td> 
    </tr> 
</table> 

어떻게 작성해야합니까?

지금은 단지 td의 내용을 모델에 생성 한 다음 generate()을 호출합니다. 그러나 이것은 셀에 대한 HTML이 모델에 있음을 의미하지만보기에 계속 유지하려고합니다.

답변

2

내가 제안하는 것은 td 구조를 생성하는 데이터를 전달한다는 것입니다. 뷰의 출력을 캡쳐하여 테이블 생성기로 전달하십시오. 이렇게하면 구조가 다른보기에도 유지됩니다.

+0

그레이트 솔루션! 변수에 view-> load() 할 수 있다는 것을 몰랐습니다! –

0

Hailwood의 대답은 그것을하는 가장 좋은 방법은 아닙니다. html 테이블 클래스에는 add_row 메소드의 데이터 요소가 있습니다. 그래서 코드가 될 것이다 : 제쳐두고

$row = array(); 
$row[] = array('data' => "<div class='caption'>{$data1[0]}</div><span class='span1'>{$data1[1]} and here goes <strong>{$data1[2]}</strong></span>"); 
$row[] = $col2; 
$row[] = $col3; 

$this->table->add_row($row) 
echo $this->table->generate(); 

를 표 캡션 태그를 가지고 있기 때문에 테이블의 클래스 이름 캡션 의미 혼란 구비.