여분필드 배열값이 있을때만 출력
본문
여분필드에 배열로 저장해서 출력은 가능합니다.
write.skin.php 에서 값을 넣지 않으면 view.skin.php 에 공백으로 보여서
만약 값을 넣지 않으면 공백출력까지 안되게 할수 없을까요?
예를들어 write.skin.php에서 아래와 같이 입력하면
값1 | ||
값2 | ||
값3 |
view.skin.php에서
값1 | 값2 | 값3 |
이렇게 하고 싶습니다.
도움 부탁드립니다.
참조할만한 게시물도 감사합니다
답변 4
이런식으로 하시면 됩니다.
<?php
// array() : 는 배열을 만든다
// array_filter() : 빈 값들을 제거한다
// implode() : 배열을 합쳐서 문자열로 만든다
echo implode('', array_filter(array($aaa, $bbb, $ccc, $ddd, $eee, $fff)));
?>
// 아래 코드들은 기본적으로 모두 조건문을 이용한 방법입니다.
// 또는
<?php echo ($aaa ?: ''); ?><?php echo ($bbb ?: ''); ?><?php echo ($ccc ?: ''); ?><?php echo ($ddd ?: ''); ?><?php echo ($eee ?: ''); ?><?php echo ($fff ?: ''); ?>
// 또는
<?php if($aaa) { echo $aaa; } ?><?php if($bbb) { echo $bbb; } ?><?php if($ccc) { echo $ccc; } ?><?php if($ddd) { echo $ddd; } ?><?php if($eee) { echo $eee; } ?><?php if($fff) { echo $fff; } ?>
// 또는
<?php
foreach(array($aaa, $bbb, $ccc, $ddd, $eee, $fff) as $value) {
if($value) {
echo $value;
}
}
?>
view.skin.php
<?php
$wr1 = explode("|",$write[wr_1]);
$aaa = $wr1[0];
$bbb = $wr1[1];
$ccc = $wr1[2];
$ddd = $wr1[3];
$eee = $wr1[4];
$fff = $wr1[5];
$ggg = $wr1[6];
?>
<input name='aaa' class=ed value='<?=$aaa?>' type='text' size='10' maxlength='10'>
<input name='bbb' class=ed value='<?=$bbb?>' type='text' size='10' maxlength='10'>
<input name='ccc' class=ed value='<?=$ccc?>' type='text' size='10' maxlength='10'>
<input name='ddd' class=ed value='<?=$ddd?>' type='text' size='10' maxlength='10'>
<input name='eee' class=ed value='<?=$eee?>' type='text' size='10' maxlength='10'>
<input name='fff' class=ed value='<?=$fff?>' type='text' size='10' maxlength='10'>
view.skin.php
<?=$aaa?><?=$bbb?><?=$ccc?><?=$ddd?><?=$eee?><?=$fff?>
이렇게 출력이 된다고 하면요
만약 write.skin.php 에서 aaa ddd fff 이렇게 3개를 입력 했을때 (연속적이지 않은 값)
view.skin.php에서
<?=$aaa?> 공백 공백 <?=$ddd?> 공백 <?=$fff?> 이렇게 출력이 됩니다.
이걸 <?=$aaa?><?=$ddd?><?=$fff?> 이렇게 값이 있는것만 출력되게 할려고합니다.
질문이 잘 이해가 안되네요. write.skin.php 와 view.skin.php 파일의 해당부분 코드를 첨부해보세요.
덕분에 해결됬습니다 감사합니다