게시판 글쓰기 행추가 기능 질문
본문
어떤 분이 올리신 글을 참고해서
글쓰기 부분에 추가 버튼을 누르면 행이 추가되는 기능을 넣었습니다.
write.skin.php
<?php
if ($w == "u") {
$wr_6x = explode("|",substr($write['wr_6'],1));
}
?>
<table id="table1" cellspacing="0" cellpadding="0">
<tr class="sound_only">
<th>구분</th>
</tr>
<?php
$wr6_cnt = count($wr_6x);
if(!$wr6_cnt){
$wr6_cnt = 1;
}
for ($i = 0; $i < $wr6_cnt; $i++) {
?>
<tr>
<td>
<textarea name="wr_6x[]"><?php echo $wr_6x[$i];?></textarea>
<input type="button" value="삭제" class="tabledel_btn" onclick="ob_adRows.delRow(this)"/>
<input type="button" value="추가" class="tableadd_btn" onclick="ob_adRows.addRow(this)"/>
</td>
</tr>
<?php } ?>
<table id="dyntbl1" cellspacing="0" cellpadding="0"></table>
<script>
function adRowsTable(id){
var table = document.getElementById(id);
var me = this;
if(document.getElementById(id)){
var row1 = table.rows[1].outerHTML;
function setIds(){
var tbl_id = document.querySelectorAll('#'+ id +' .tbl_id');
for(var i=0; i<tbl_id.length; i++) tbl_id[i].innerHTML = i+1;
}
me.addRow = function(btn){
btn ? btn.parentNode.parentNode.insertAdjacentHTML('afterend', row1): table.insertAdjacentHTML('beforeend',row1);
setIds();
}
me.delRow = function(btn){
btn.parentNode.parentNode.outerHTML ='';
setIds();
}
}
}
var ob_adRows = new adRowsTable('table1');
</script>
write_update.skin.php
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
for ($i = 0; $i < count($wr_6x); $i++)
{
$wr_6 = $wr_6."|".$wr_6x[$i];
}
$sql678 = "update $write_table set
wr_6 = '$wr_6'
where wr_id = '$wr_id' ";
sql_query($sql678);
?>
입니다.
보기 페이지에
<?php echo get_view_thumbnail($view['wr_6']); ?>
로 불러오고 있는데
|행추가내용|행추가내용|행추가내용|행추가내용
위와 같이 불러와 집니다.
추가한 행에 입력한 내용이 위아래로 줄바꿈되게 보이게 하고 싶은데
어느 부분을 수정해야 할까요..
답변 2
write_update.skin.php
부분에서
for ($i = 0; $i < count($wr_6x); $i++)
{
$wr_6 = $wr_6."|".$wr_6x[$i];
}
이 부분을
if(is_array($wr_6x)) $wr_6=implode("|", $wr_6x);
이렇게 바꾸시고
출력할때
echo str_replace("|", "<br />", $view['wr_6']);
이렇게 하시면 될듯 하네요.
혹시 이런걸 원하시는 건지요?
<table id="table1" cellspacing="0" cellpadding="0">
<tr class="sound_only">
<th>구분</th>
</tr>
<?php
$wr6_cnt = count($wr_6x);
if(!$wr6_cnt){
$wr6_cnt = 1;
}
for ($i = 0; $i < $wr6_cnt; $i++) {
?>
<tr>
<td>
<?php
// 개행된 텍스트를 배열로 분할하여 출력
$wr_6_text = explode("\n", $wr_6x[$i]);
foreach ($wr_6_text as $line) {
echo $line . "<br>";
}
?>
<input type="button" value="삭제" class="tabledel_btn" onclick="ob_adRows.delRow(this)"/>
<input type="button" value="추가" class="tableadd_btn" onclick="ob_adRows.addRow(this)"/>
</td>
</tr>
<?php
}
?>
</table>