wr_content 내용저장 방법

wr_content 내용저장 방법

QA

wr_content 내용저장 방법

본문

고수님들,,,안녕하세요ㅠㅠ

새로운 것을 해결하면 계속 새로운 문제들이 발생하는 것 같아요

제가 wr_content의 값을 표로 입력받아서 저장하고 있는데 이제 이 표가 동적으로 작동을 해서 표 개수가 늘어가는데 그에 따라서 write_update.skin.php에서 어떻게 저장할 수 있는지 물어보고 싶어서 질문글 남겼습니다

 

write_update.skin.php


<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
 
$wr_content = "$wr_content_name[0] $wr_content_name[1] $wr_content_name[2]";
 
$sql = " update $write_table
            set  wr_content = '$wr_content'
          where wr_id = '$wr_id' ";
sql_query($sql);
?>

 

현재는 이렇게 세개의 값만 배열로 받아 저장할 수 있는데 저는 이제 동적으로 늘어나는 내용의 값들도 저장을 하고 싶은데 도저히 방도가 생각이 나지 않아 질문드립니다ㅠ

 

write.skin.php


            <label for="wr_content" style="display:none;">혼합사료</label>
            <div id ="feed_type_box" style=" overflow-y:scroll;" class="wr_content <?php echo $is_dhtml_editor ? $config['cf_editor'] : ''; ?>" placeholder="특이사항">
                <table style="width:100%;">
                    <thead>
                        <tr style="background-color:#eeefff; height:40px; margin-top:10px; padding:18px; border-radius:7px;">
                            <th>사료명</th>
                            <th>투입량입력</th>
                            <th>0.0</th>
                            <th>투입비율</th>
                            <th>선택제거</th>
                        </tr>
                    </thead>
                    <tbody>
                        
                    </tbody>
                </table>
            </div>

여기 테이블을 이렇게 만들었고

 


<script>
        function addFeedName(e){
            cnt ++;
            $("#feed_type_box tbody").append("<tr id='redbackground' class='removeButton"+cnt+"'>");
            $("#feed_type_box tbody").append("<td><span class='removeButton"+cnt+"'>"+feedIdRandom+"</span></td>");
            $("#feed_type_box tbody").append("<td><input type='text' name='wr_content_name[0]' class='removeButton"+cnt+"'></td>");
            $("#feed_type_box tbody").append("<td><input type='text' name='wr_content_name[1]' class='removeButton"+cnt+"'></td>");
            $("#feed_type_box tbody").append("<td><input type='text' name='wr_content_name[2]' class='removeButton"+cnt+"'></td>");
            $("#feed_type_box tbody").append("<td><input type='button' id='removeButton' onclick='removeContent(this);' class='removeButton"+cnt+"' value='제거'></td>");
            $("#feed_type_box tbody").append("</tr>");
        }
</script>

아래에 스크립트 코드에는 append함수를 사용해서 버튼이 눌리면 tr td를 추가하도록 만들었습니다!!

 

너무 바쁘시겠지만 한번만 ㅠㅠㅠ 도와주세요ㅜㅜ

 

==>wr_content의 테이블 내용을 동적 배열로 받아 저장할 수 있는 방법

이 질문에 댓글 쓰기 :

답변 1


<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
 
$wr_content = "$wr_content_name[0] $wr_content_name[1] $wr_content_name[2]";
 
// 쿼이 처리
$sql = " update $write_table ";
 
// 동적배열 쿼리 처리
$wr_content_add = '';
for($i=0; $i < 2; $i++){
   if( isset(wr_content_name[$i]) ){
      if($wr_content_add){
         $wr_content_add = '☞'; // 구분자 문자
      }
         $wr_content_add = wr_content_name[$i];
   }
}
$wr_content .= $wr_content_add;
 
$sql .= " set  wr_content = '$wr_content' ";
$sql .= " where wr_id = '$wr_id' ";
sql_query($sql);
?>

 

간단하게 짜봤는데, 일반적으로 저장만 하면 구분지어두신 내용을 다시 불러오실 때 구분지어 출력되지 않습니다.

하여 구분자를 임의로 정해서 구분자로 나누어주었습니다.

 

다만 위 방법으로도 항목별 구분은 되지 않고 섹션별 구분만 가능합니다.

 

이를 해결하기에 가장 좋은 방법은 컬럼을 짜는 것, 직렬화를 사용하는 것 2가지가 있습니다.

개수가 지금 두개인게 아니라 추가 버튼을 누를때마다 3개씩 입력칸이 증가하는 거여서요!!!


for($i=0; $i < 2; $i++){
   if( isset(wr_content_name[$i]) ){
      if($wr_content_add){
         $wr_content_add = '☞'; // 구분자 문자
      }
         $wr_content_add = wr_content_name[$i];
   }
}

이 방식으로 진행하려면 $i<2 이 부분을 추가된 갯수만큼 가져와야될텐데 추가된 행의 개수를 write_update.skin.php로 가져올 수 있는 방법은 없을까요?

3개씩 입력칸이 증가되는거라면, hidden input으로 몇번 눌렀는지도 보내시면 됩니다.

그게 아니면, wr_content_name을 그냥 []으로 놓으시고 wr_content_name의 length만큼 만복시켜도 되고요.

아 감사합니다!!! 알려주신대로 지금 for로 반복문을 돌리고 전 length 안 쓰고 count를 사용했어요!!

write_update.skin.php(정상작동코드)


for($i=0; $i < count($wr_content_name); $i++){
  if( isset($wr_content_name[$i]) ){
    $wr_content .= $wr_content_name[$i] ;

  }
}


write_update.skin.php(구분문자 넣은 코드)

$spacing_word = ' ';

for($i=0; $i < count($wr_content_name); $i++){
  if( isset($wr_content_name[$i]) ){
    $wr_content .= $wr_content_name[$i] ;
    $wr_content .= $spacing_word ;
  }
}


지금 하고 있는데 DB에 저장될 때 wr_content마지막에 저장되는 배열은 뒤 부분이 끊어져서 저장이 되더라구요,,,흑 어떻게 하면 좋을까요??ㅠㅠㅠㅠ

지금 하고 있는데 DB에 저장될 때 wr_content마지막에 저장되는 배열은 뒤 부분이 끊어져서 저장이 되더라구요,,,흑 어떻게 하면 좋을까요??ㅠㅠㅠㅠ

더 상세히... 설명 부탁드려요 무슨 말씀인지 이해가 안갑니다.
예로 데이터도 어떻게 입력했고 어떻게 출력되는지 부탁드립니다.

그렇게 질문하시면 경우의 수가 너무 많아요 ㅠ

답변을 작성하시기 전에 로그인 해주세요.
전체 123,524 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT