게시물 가로로 3개 출력 후 줄바꿈 채택완료
총30개 게시물이 가로로 3개 출력 후 줄바꿈하여 10줄이 되게 하려는데요
게시물이 30번 반복되게 하였습니다
for ($i=0; $i<count($list); $i++) {
if ($i>0 && $i%$cols==0) {
echo "<tr><td colspan='$cols' height='$space_h'></td></tr><tr>";
}
요부분이 문제인 거 같은데요 어떻게 수정해야 할지
고수님들 부탁드립니다
아래 소스로 실행을 하면 출력되는 게시물이 30개가 넘고 출력이 엉망입니다
--------------------------------------------------------------------------------------
<?
// 반복되는 부분중에 그 특정내용 태그만 뽑아오기
foreach ($xml->wanted as $obj) {
$list[$i][wr_10] = $obj->company;
$list[$a][subject] = $obj->title;
$ex2_filed[0] = $obj->region;
$list[$i][wr_26] = $obj->salTpNm;
$list[$i][wr_27] = $obj->minSal;
$wnum[$a] = $obj->wantedAuthNo;
$date_ymd = $obj->closeDt;
?>
<div class="job_latest_wrap">
<table WIDTH="100%" border="0" summary="박스." cellspacing="0">
<tbody valign="top">
<?php
for ($i=0; $i<count($list); $i++) {
if ($i>0 && $i%$cols==0) {
echo "<tr><td colspan='$cols' height='$space_h'></td></tr><tr>";
}
$gold_style = " style=\"display; border: solid 1px #2A8EF2;\"";
$subject_box = " style=\"border-top: solid 1px #2A8EF2; padding:3px 7px; background-color: #DCEFFF;\"";
?>
<td width="<?php echo $col_width?>%" align="center">
<table WIDTH="<?php echo $box_w?>%" <?php echo $gold_style?> border="0" summary="박스." cellspacing="0">
<tbody valign="top">
<tr>
<td class="thumb_box" align='middle'>
<?php
if (preg_match("/\.(jpg|gif|png|bmp)$/i", $thumb) && file_exists($thumb)) {
echo "<table width='100%' border='0' summary=\"로고, 회사명 박스.\" cellspacing='0'>";
echo "<tr>";
echo "<td style='height:{$img_h}px; text-align: center; border:0px solid #c7c7c7;'>";
echo "<a href='{$list[$i]['href']}'><img src='$thumb' border='0' align='absmiddle'></a>";
echo "</td>";
echo "</tr></table>";
}else if (!file_exists($list[$i][file_image0])){
echo "<table width='100%' border='0' summary=\"로고 이미지가 아닐때, 회사명 박스.\" cellspacing='0'>";
echo "<tr>";
echo "<td style='height:{$img_h}px; text-align: center; border:0 solid #c7c7c7;'>";
echo "<a href='{$list[$i]['href']}'><strong><blink><font color='#33CCFF'>{$list[$i][wr_10]}</font></blink></strong>";
echo "</td>";
echo "</tr></table>";
}
?>
</td>
</tr>
<tr>
<td <?php echo $subject_box?>>
<ul class="guin-content">
<li class="wr_10"><a href="<?php echo $list[$i]['href']?>"><strong><?php echo cut_str($list[$i][wr_10],40); //회사명 ?></strong></a></li>
<li>
<?php
echo "<a href='{$list[$i]['href']}'>";
echo "{$list[$i]['subject']}";
echo "</a>";
echo " " . $list[$i][icon_new];
?>
</li>
<!--<li>성별:<?php echo$list[$i][wr_11]; ?></li>-->
<li>급여사항:<b><?php echo$list[$i][wr_26]; //급여사항 ?></b>
<?php if ( $list[$i]['wr_27'] ==! null) {
echo "<b>";
echo number_format($list[$i]['wr_27']) . "원";
echo "</b>";
} else {
echo "<b>";
echo$list[$i]['wr_29'];
echo "</b>";} ?>
</li>
<li>근무지:<?//=cut_str($list[$i][wr_1],20,"") // 근무지 ?><?=$ex2_filed[0]?> <?=$ex2_filed[1]?>
<span style="float:right;">
<?php //마감일
$date_ymd = date(Y)."-".date(m)."-".date(d);
if ($date_ymd <= $ext8_00) { //날짜를 구한다
echo "<img src='$latest_skin_path/img/icon_onf.gif' border='0' align='absmiddle'>";
}else if ($ext8_01 == "상시모집") {
echo "<img src='$latest_skin_path/img/icon_on.gif' border='0' align='absmiddle'>";
}else{ //구인완료
echo "<img src='$latest_skin_path/img/icon_off.gif' border='0' align='absmiddle'>";
}
?>
</span>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</td>
<? } ?>
<? } ?>
</tr>
</tbody>
</table>
</div>
답변 4개
<?
// 반복되는 부분중에 그 특정내용 태그만 뽑아오기
$i = 0;
foreach ($xml->wanted as $obj) {
$list[$i][wr_10] = $obj->company;
$list[$i][subject] = $obj->title;
$list[$i][ex2_filed] = $obj->region;
$list[$i][wr_26] = $obj->salTpNm;
$list[$i][wr_27] = $obj->minSal;
$list[$i][wnum] = $obj->wantedAuthNo;
$list[$i][date_ymd] = $obj->closeDt;
$i++;
}
?>
<div class="job_latest_wrap">
<table WIDTH="100%" border="0" summary="박스." cellspacing="0">
<tbody valign="top">
<?php
$cols = 3;
$gold_style = " style=\"display; border: solid 1px #2A8EF2;\"";
$subject_box = " style=\"border-top: solid 1px #2A8EF2; padding:3px 7px; background-color: #DCEFFF;\"";
for ($i=0; $i<count($list); $i++) {
if ($i%$cols==0) {
echo "<tr><td colspan='{$cols}' height='{$space_h}'></td></tr><tr>";
}
?> <td width="<?php echo $col_width?>%" align="center">
<table WIDTH="<?php echo $box_w?>%" <?php echo $gold_style?> border="0" summary="박스." cellspacing="0">
<tbody valign="top">
<tr>
<td class="thumb_box" align='middle'>
<?php
if (preg_match("/\.(jpg|gif|png|bmp)$/i", $thumb) && file_exists($thumb)) {
echo "<table width='100%' border='0' summary=\"로고, 회사명 박스.\" cellspacing='0'>";
echo "<tr>";
echo "<td style='height:{$img_h}px; text-align: center; border:0px solid #c7c7c7;'>";
echo "<a href='{$list[$i]['href']}'><img src='$thumb' border='0' align='absmiddle'></a>";
echo "</td>";
echo "</tr></table>";
}else if (!file_exists($list[$i][file_image0])){
echo "<table width='100%' border='0' summary=\"로고 이미지가 아닐때, 회사명 박스.\" cellspacing='0'>";
echo "<tr>";
echo "<td style='height:{$img_h}px; text-align: center; border:0 solid #c7c7c7;'>";
echo "<a href='{$list[$i]['href']}'><strong><blink><font color='#33CCFF'>{$list[$i][wr_10]}</font></blink></strong>";
echo "</td>";
echo "</tr></table>";
}
?>
</td>
</tr>
<tr>
<td <?php echo $subject_box?>>
<ul class="guin-content">
<li class="wr_10"><a href="<?php echo $list[$i]['href']?>"><strong><?php echo cut_str($list[$i][wr_10],40); //회사명 ?></strong></a></li>
<li>
<?php
echo "<a href='{$list[$i]['href']}'>";
echo "{$list[$i]['subject']}";
echo "</a>";
echo " " . $list[$i][icon_new];
?>
</li>
<!--<li>성별:<?php echo$list[$i][wr_11]; ?></li>-->
<li>급여사항:<b><?php echo$list[$i][wr_26]; //급여사항 ?></b>
<?php if ( $list[$i]['wr_27'] ==! null) {
echo "<b>";
echo number_format($list[$i]['wr_27']) . "원";
echo "</b>";
} else {
echo "<b>";
echo$list[$i]['wr_29'];
echo "</b>";} ?>
</li>
<li>근무지:<?//=cut_str($list[$i][wr_1],20,"") // 근무지 ?><?=$ex2_filed[0]?> <?=$ex2_filed[1]?>
<span style="float:right;">
<?php //마감일
$date_ymd = date(Y)."-".date(m)."-".date(d);
if ($date_ymd <= $ext8_00) { //날짜를 구한다
echo "<img src='$latest_skin_path/img/icon_onf.gif' border='0' align='absmiddle'>";
}else if ($ext8_01 == "상시모집") {
echo "<img src='$latest_skin_path/img/icon_on.gif' border='0' align='absmiddle'>";
}else{ //구인완료
echo "<img src='$latest_skin_path/img/icon_off.gif' border='0' align='absmiddle'>";
}
?>
</span>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</td>
<?
if ($i%$cols==0){
echo "</tr>";
}
}
if($i%$cols != 0){
echo "</tr>";
}
?>
</tbody>
</table>
</div>
이런식으로 2중 for문을 사용하지 마시고 상단에서 list를 정의해주고 하단에서 list를 불러서 3줄 단위로 쪼개면 될 듯 해요
for문 구조만 바꾼거라 데이터의 일부가 나오지 않겠지만 도움 되길 바랍니다.
답변에 대한 댓글 6개
[code]
if ($i%$cols==0){
[/code]
[code]
if ($i%$cols==0 && $i != 0){
[/code]
이렇게 바꿔보시겠어요?
두번째줄부터는 2개로 나오네요
https://www.sisulteam.com/ss/7.php
댓글을 작성하려면 로그인이 필요합니다.
팻시님께서 예전에 알려주신 팁입니다^^
참고하세요.
<table width="100%" border="0">
<?php
$parts = 3; // 세덩어리씩 보여줄때
//$i 는 0 부터 시작하세요.
for ($i=0; $i<$list_count; $i++) {
if($i % $parts == 0) echo "<tr>";
?>
<td><?=$list[$i]['subject']?></td>
<?php
if($i % $parts == ($parts-1)) echo "</tr>";
}
// 그리고 3의 배수로 딱 끝나지 않잖아요.
if($key % $parts != ($parts-1)) {
echo str_repeat("<td colspan='3'></td>", (($parts - ($i % $parts)) % $parts));
echo "</tr>";
}
?>
</table>
답변에 대한 댓글 12개
<td>a</td>
<td>b</td>
<td>c</td>
</tr>
<tr>
<td>d</td>
<td>e</td>
<td>f</td>
</tr>
<tr>
<td>g</td>
<td>h</td>
<td>i</td>
</tr>
......
<tr>
<td>x</td>
<td>y</td>
<td>z</td>
</tr>
이런 식입니다
-------------------------------------------------------------
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
/*
* Ezjob for Gnuboard4 skin
* Copyright 2012. 08. Ezjob.kr
* File Encoding: Korean(Euc-Kr)
*/
// $is_crop = 1;
// $is_crop : 세로 높이가 $height를 넘을 때 crop 할 것인지를 결정
// 0 : crop 하지 않습니다
// 1 : 기본 crop
// 2 : 중간을 기준으로 crop
$col_width = (int)(100 / $cols);
//불당썸---------------------------------------------------------------//
//$img_w = 100; //표시할 이미지의 가로사이즈
$img_h = 40; //표시할 이미지의 세로사이즈
//$img_s = 20;
//언샾마스트 퀄리티(썸 노이즈바지)
$filter[type] = 90;
$filter[arg1] = 100;
$filter[arg2] = 1;
$filter[arg3] = 2;
$data_path = $g4[path]."/data/file/$bo_table";
$thumb_path = $data_path.'/thumb';
$no_img = $latest_skin_path."/img/img_no.gif";
// 불당썸을 include
include_once("$g4[path]/lib/thumb.lib.php");
//불당썸---------------------------------------------------------------//
// 옵션 출력설정
//list($gold) = explode('/', $options);
$latest_options = explode(",", $options);
$skin_code = $bo_table.rand();
?>
<style type="text/css">
/*<!--<![CDATA[*/
@import url(<?=$latest_skin_path?>/style_latest.css);
/*]]>-->*/
</style>
<?
// 채용정보 url
$url = "http://openapi.work.go.kr/opi/opi/opia/wantedApi.do";
$var = "?authKey=********************&callTp=L&returnType=XML&startPage=1&display=9";
$data = file_get_contents($url . $var);
$xml = simplexml_load_string($data);
?>
&display=9"; 이 부분이 9번 출력하라는 부분입니다
count($list)를 9로 넣었고
$i를 $a로 바꿨습니다
댓글을 작성하려면 로그인이 필요합니다.
위 소스는 3번째 단을 강제로 <tr>로 끊는다는건데
위 CSS 에 맞게 수정하셔야죠 ㅎㅎ
답변에 대한 댓글 1개
https://www.sisulteam.com/ss/7.php 출력결과가 이렇게 나오는데요
중복 출력을 보면 css문제만은 아닌 거 같아서요
댓글을 작성하려면 로그인이 필요합니다.
if($i == 2) echo '<tr><td></td></tr>';
그냥 3번째 (0부터 시작하니 2)에 단을 나누는거 하나 들어가면 될것 같은데요?
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
중복없이 9개가 잘 나오네요
그런데 1줄에 3개가 아니라 2줄이 나오네요
https://www.sisulteam.com/ss/7.php