2013-08-05 3 views
1

PHP를 사용하여 데이터베이스의 일부 값을 기반으로 행 높이 세트가 동적으로 설정된 html 테이블을 인쇄해야합니다. html 5는 인라인 키와 태그를 사용하지 않고 CSS를 대신 사용하는 것 같습니다. 내 요구 사항은 html 파일을 생성 한 다음 DOM pdf를 사용하여 pdf로 변환하는 것입니다.동적 행 높이로 HTML 테이블 생성

이러한 매개 변수를 동적으로 인라인으로 설정하는 방법이나 CSS를 사용하는 방법 또는 라이브러리가 이미 동일한 목적으로 사용 가능한지 여부를 안내해주십시오.

내가 많이 봤지만 내 요구 사항과 일치하는 결과를 찾을 수 없습니다.

: 또한

가 인라인 스타일을 사용

+0

여기에서 코드를 공유 할 수 있습니까? –

+0

jquery를 사용할 수 있습니까? –

+0

물론 @JoeBuckle 물론 .. 그 라이브러리가 있습니까? – Jyothish

답변

1

미리 Sample Output

감사 (답 열에서 난은 각 행에 필요한 높이가되는 일부 값을 출력) 최종 출력 포맷을 부착하고 <tr style="height: 300px;"></tr>

<tr> 태그의 높이를 효과적으로 설정할 수 있는지 확실하지 않으므로 각높이를 설정해야 할 수도 있습니다. 행에 개별적으로. 시도 해봐.

또한 행과 열의 구조가 어떻게 구성되어 있는지 확신 할 수 없지만이를 수행하는 방법에 대해 설명 할 수 있습니다.

<?php 
$array=array(array(50,'r1c1','r1c2'),array(50,'r2c1','r2c2')); 
echo '<table>'; 
foreach($array as $row) 
{ 
    echo '<tr style="height: '.$row[0].'px;">'; 
    echo '</tr>'; 
    for($i=1;$i<count($row);++$1) 
    { 
     echo '<td>'.$row[$i].'</td>'; 
    } 
} 
echo '</table>'; 
?> 

당신은 아직도 당신이 <table>로 전환하고자하는 정확한 배열을 게시 도움이 내가 도와 최선을 다하겠습니다 필요합니다.

+0

이미 내 쿼리와 필수 테이블 출력 이미지를 공유했습니다. 이미지를 참조하십시오. :) 그 이미지에서 명확 해지기를 바랍니다. – Jyothish

+0

@CodeinDreams 글쎄, 물론 이미지를 볼 수는 있지만 여전히 어레이가 어떻게 생겼는지는 알려주지 않습니다. 배열은 루프가 생성되는 방법을 지정하기 때문에 여기에서 중요한 것입니다. 거기에서 출력이 어떻게 보이는지 지시하도록 조정할 수 있습니다. – teh1

1

이 권리를 이해하는 경우 테이블 행은 서로 다른 크기가 될 수 있지만 각 행에 대해 행의 높이를 설정하는 데이터베이스의 규칙이 있습니다. 당신은 인라인 스타일을 사용하려면, "#row<?=$key;?> td"

Updated 

어쨌든 당신이 "#row<?=$key;?>"를 대체 할 수있는 스타일 태그에

<html> 
<head> 
    <style> 
     <?php foreach($yourRows as $key => $row) { ?> 
      #row<?=$key;?>{ 
       height: <?=$row['height']; ?>px; 
      } 
     <?php } ?> 
    </style> 
</head> 
<body> 
    <table> 
    <?php foreach($yourRows as $key => $row) { ?> 
     <tr id="row<?=$key; ?>"> 
      ... 
     </tr> 
    <?php } ?> 
    </table> 
</body> 

: 그럼 당신은 이런 식으로 뭔가를 사용할 수 있습니다 다음과 같이 할 수 있습니다.

<html> 
<body> 
    <table> 
     <?php foreach($yourRows as $row) { ?> 
       <tr style="height:<?=$row['height']; ?>px"> 
        Or you can apply height to td instead of the tr... 
       </tr> 
     <?php } ?> 
    </table> 
</body> 

+0

내 의견으로는,이 방법은 페이지의 CSS를 일치시켜야하는 많은 규칙으로 오염시켜 CSS의 다른 부분을 방해 할 수 있습니다. 인라인 스타일이 여기에 더 적합하다고 생각합니다. – teh1

+0

이것은 괜찮은 것처럼 보이지만 인라인 스타일은 DOM PDF와 함께 작동합니까? – Jyothish

+0

** teh1 **, 그럴지도 모르지만 그 방법으로 인라인 스타일을 추가 할 수도 있습니다. 코드 샘플에 관한 내용입니다. 그 해결책도 맘에 들지 않지만, ** Code in Dreams **에 따르면, 인라인 스타일은 그를 위해 일하지 않으므로 가능한 문제를 검색하는 대신 인라인 스타일을 적용하지 못하게하는 대신, 그에게 또 다른 해결책을주기 위해. –

1

jQuery가 여기에서 효과가 있다고 생각한다면 제안 사항입니다. DOMPDF와 함께 작동하는지 모르겠지만 동적으로 CSS를 생성 할 때 DOM이로드되면 괜찮을 것입니다.

정확하게 각 행의 높이를 알고 있다면 - eq을 사용하여 jQuery를 사용하여 선택하십시오.

$(document).ready(function() { 
    $('table tr').eq(1).css({'height':'250'}); 
    $('table tr').eq(3).css({'height':'450'}); 
}); 

여기는 입니다.

그런 식으로 출력을 수정할 필요는 없지만 내용이 고정 된 높이보다 높지 않을 것이라는 가정을해야합니다.

동적 인 경우이 코드가 필요하면 클래스와 같은 식별자를 행에 연결해야합니다. 또는 콘텐츠에 패턴이있는 경우 콘텐츠를 검색하고이를 식별하는 정규 표현식을 만드는 것입니다. 그런 다음 jQuery를 사용하여 일치시킨 CSS 규칙을이 행에 적용 할 수 있습니다. 데이터베이스에 저장된 높이 값이있는 경우

편집

OK 그래서 약간 오해 할 수있다. 또한 인라인 스타일을 사용할 수 없다고 이미 판단한 것처럼 보입니다.

다음은 제 제안입니다.

루프에서 테이블을 만들면 다음과 비슷할 것입니다. 당신이 데이터 높이 = " '. $ 행 ['높이 '].'"추가하면

foreach($rows as $row) { 
    echo '<tr data-height="'.$row['height'].'"><td>...</td></tr>; 
} 

는 당신은 우리가 지금과 같은 jQuery의 data 사용하여 얻을 수있는 값을 가지고있다.

$(document).ready(function() { 
    $('table tr').each(function() { 
     var height = $(this).data('height'); 
     $(this).css({ 'height': height }); 
    }); 
}); 

여기서 정적 데이터 높이 값 fiddle 일례이다. 어떻게 지내는지 알려줘.

+0

콘텐츠 높이가 결코 고정 높이보다 높지 않습니다. 최소 높이는 콘텐츠 높이입니다. 행의 필수 높이가 내용 높이보다 높으면 데이터베이스 ** 높이 필드 ** 값을 기반으로해야합니다. 주어진 코드에 높이 값을 동적으로 공급할 수있는 방법이 있습니까? – Jyothish

+0

데이터베이스 높이 필드가 PHP 변수에 저장되어 있습니까? –

+0

사무실에있는 즉시 수정 사항을 추가하겠습니다. 나는 –