글작성 업데이트문 관련

글작성 업데이트문 관련

QA

글작성 업데이트문 관련

답변 2

본문

 
 
cafe24_com_20140621_111021.jpg
 
 
글 작성시 그림처럼 최대 10개까지 필드를 늘여서 입력을 합니다.
해당 테이블로 값은 잘 넘어갑니다.
그런데 글수정시에 입력한 값과 추가를 한 필드 그대로 데이터를 받아와서 글수정시엔 수정을 해야 되는데
글수정을 모드로 들어가면 초기화가 되어 있네요..
 
-------------------------------------------------------------------------------------
 
write.skin.php 필드추가관련 소스
 
<?
$pollScript = "<script>for (i=0;i<2;i++) { addPoll();}</script>";
?>
<script type="text/javascript">

var flen = 0;
function addPoll(memo)
{
 var poll_count = <?=(int)$board[bo_upload_count]?>;
            if (poll_count && flen >= poll_count)
            {
                alert("보기는 10개까지 등록 가능합니다.");
                return;
            }
 
 if (!memo) memo = '';
 var objTbl;
 var objRow;
 var objCell;
 if (document.getElementById)
  objTbl = document.getElementById('poll_table','variableFiles');
 else
  objTbl = document.all['poll_table','variableFiles'];

 objRow = objTbl.insertRow(objTbl.rows.length);
 objCell = objRow.insertCell(0);
 objCell.innerHTML = + 1 + "번 보기를 입력하세요. <INPUT  style='width:300px; height:27px; padding:4px; border:1px solid #c2c2c2; font-weight:bold;' value='" + memo + "' name='po_poll[]'> <input type='file' name='bf_file[]'>";
 flen++;
}

<?=$file_script; //수정시에 필요한 스크립트?>
function delPoll()
        {
   var poll_length = 1;
            var objTbl = document.getElementById("poll_table");
            if (objTbl.rows.length - 1 > poll_length)
            {
                objTbl.deleteRow(objTbl.rows.length - 1);
    
    flen--;
            }
        }
</script>
 
<table id='poll_table' cellpadding=0 cellspacing=0></table><?=$pollScript?>
 
-----------------------------------------------------------------------------------
 
write_update.skin.php
 
$items= array();
   for ($i=0; $i<=9; $i++) {
$items['po_poll'.$i] = get_text($_POST['po_poll'][$i]);
   }
$_POST['po_poll1'] = $items['po_poll0'];
$_POST['po_poll2'] = $items['po_poll1'];
$_POST['po_poll3'] = $items['po_poll2'];
$_POST['po_poll4'] = $items['po_poll3'];
$_POST['po_poll5'] = $items['po_poll4'];
$_POST['po_poll6'] = $items['po_poll5'];
$_POST['po_poll7'] = $items['po_poll6'];
$_POST['po_poll8'] = $items['po_poll7'];
$_POST['po_poll9'] = $items['po_poll8'];
$_POST['po_poll10'] = $items['po_poll9'];

if ($w == '')
{
 
    $sql = " insert {$g5['poll_table']}
             ( po_subject, po_poll1, po_poll2, po_poll3, po_poll4, po_poll5, po_poll6, po_poll7, po_poll8, po_poll9, po_poll10, po_cnt1, po_cnt2, po_cnt3, po_cnt4, po_cnt5, po_cnt6, po_cnt7, po_cnt8, po_cnt9, po_cnt10, po_etc, po_multi, po_level, po_point, po_date )
             values ( '{$_POST['po_subject']}', '{$_POST['po_poll1']}', '{$_POST['po_poll2']}', '{$_POST['po_poll3']}', '{$_POST['po_poll4']}', '{$_POST['po_poll5']}', '{$_POST['po_poll6']}', '{$_POST['po_poll7']}', '{$_POST['po_poll8']}', '{$_POST['po_poll9']}', '{$_POST['po_poll10']}', '{$_POST['po_cnt1']}', '{$_POST['po_cnt2']}', '{$_POST['po_cnt3']}', '{$_POST['po_cnt4']}', '{$_POST['po_cnt5']}', '{$_POST['po_cnt6']}', '{$_POST['po_cnt7']}', '{$_POST['po_cnt8']}', '{$_POST['po_cnt9']}', '{$_POST['po_cnt10']}', '{$_POST['po_etc']}', '{$_POST['po_multi']}', '{$_POST['po_level']}', '{$_POST['po_point']}', '".G5_TIME_YMDHIS."' ) ";
   
 
 sql_query($sql);
 
    $po_id = mysql_insert_id();
}
else if ($w == 'u')
{
 
    $sql = " update {$g5['poll_table']}
                set po_subject = '{$_POST['po_subject']}',
                     po_poll1 = '{$_POST['po_poll1']}',
                     po_poll2 = '{$_POST['po_poll2']}',
                     po_poll3 = '{$_POST['po_poll3']}',
                     po_poll4 = '{$_POST['po_poll4']}',
                     po_poll5 = '{$_POST['po_poll5']}',
                     po_poll6 = '{$_POST['po_poll6']}',
                     po_poll7 = '{$_POST['po_poll7']}',
                     po_poll8 = '{$_POST['po_poll8']}',
                     po_poll9 = '{$_POST['po_poll9']}',
      po_poll10 = '{$_POST['po_poll10']}',
                     po_cnt1 = '{$_POST['po_cnt1']}',
                     po_cnt2 = '{$_POST['po_cnt2']}',
                     po_cnt3 = '{$_POST['po_cnt3']}',
                     po_cnt4 = '{$_POST['po_cnt4']}',
                     po_cnt5 = '{$_POST['po_cnt5']}',
                     po_cnt6 = '{$_POST['po_cnt6']}',
                     po_cnt7 = '{$_POST['po_cnt7']}',
                     po_cnt8 = '{$_POST['po_cnt8']}',
                     po_cnt9 = '{$_POST['po_cnt9']}',
      po_cnt10 = '{$_POST['po_cnt10']}',
                     po_etc = '{$_POST['po_etc']}',
      po_multi = '{$_POST['po_multi']}',
                     po_level = '{$_POST['po_level']}',
                     po_point = '{$_POST['po_point']}',
                     po_date = '{$_POST['po_date']}'
                where po_id = '{$_POST['po_id']}' ";
    sql_query($sql);
}
 
 
 

이 질문에 댓글 쓰기 :

답변 2

게시판스킨을 이용해서 투표를 등록하는 건가요? 투표등록이 아닌 투표참여라면 뭔가 많이 바껴야 할지도..
여튼 혹시 모르니 일단 수정전에 새로 작성하고나서 디비(g5_poll_table)에 내용이 잘 저장됐는지 확인해보세요.
저장이 잘 되고나서야 수정할 때 기존값이 나오던지 하겠죠? ^^;

그리고 수정할 내용을 $pollScript 여기에서 셋팅해주는게 좋겠군요.
write.skin.php 상단을 이걸로 바꿔보세요.


<?
//$pollScript = "<script>for (i=0;i<2;i++) { addPoll();}</script>";

$pollScript = '';
$row = sql_fetch(" select po_poll1,po_poll2,po_poll3,po_poll4,po_poll5,po_poll6,po_poll7,po_poll8,po_poll9,po_poll10, from {$g5['poll_table']} where po_id = '$po_id'");
for ($i=1; $i<=10; $i++) {
    $memo = get_text(trim($row['po_poll'.$i]));
    if (strlen($memo))
        $pollScript .= 'addPoll("'.$memo.'");'.PHP_EOL;
    elseif ($i<=2)
        $pollScript .= 'addPoll("");'.PHP_EOL;
}
?>

그리고 자바스크립트중에..
objCell.innerHTML = + 1 + "번 보기를 입력하세요.
여기는 1 대신에 (flen+1) 이걸로 바꿔주심이..

그런데 po_cnt1~10, po_etc, po_level, po_point 이 값들은 써놓지 않은 다른 어딘가에서 지정이 되는걸까요?
특히 po_cnt1~10 이 값들은 투표수라서 의도하신게 투표등록이라면 딱히 값을 안넣어주는게 좋을듯 하네요. 수정이 아니라 등록이어도 알아서 0으로 셋팅됩니다.
반대로 의도하신게 투표참여라면.. 싸그리 고쳐야 할듯..
11.png
아 엄청 많은 도움이 되었습니다.
설문을 등록하는 중이구요.
말씀하신대로 수정을 해보니 글수정시에  작성시 값은 잘 나오는데
문제는 입력필드가 동시에 나와야 안에 값을 수정을 하는데 저렇게 필드 없이 나열 되버려서 ㅋㅋ
flen+1 이것도 해결 못하고 있었는데 1번 2번 순차적으로 잘 나오네요 ~

아.. 제가 멍청하게 <script> 태그 출력하는걸 빼먹었었군요.. 잘 해결하셨다니 다행입니다. ^^
다만 그때그때 태그를 넣는것보단 for() {} 다음에 $pollScript = '<script>'.$pollScript.'</script>'; 이렇게 하시는게 더 나을거 같아요. ^^;

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
  • 질문이 없습니다.
전체 0
© SIRSOFT
현재 페이지 제일 처음으로