테스트 사이트 - 개발 중인 베타 버전입니다

wr_content 내용저장 방법 채택완료

승슝 4년 전 조회 2,255

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

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

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

 

write_update.skin.php

</p>

<p><?php</p>

<p>if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가</p>

<p> </p>

<p>$wr_content = "$wr_content_name[0] $wr_content_name[1] $wr_content_name[2]";</p>

<p> </p>

<p>$sql = " update $write_table</p>

<p>            set  wr_content = '$wr_content'</p>

<p>          where wr_id = '$wr_id' ";</p>

<p>sql_query($sql);</p>

<p>?></p>

<p>

 

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

 

write.skin.php

</p>

<p>            <label for="wr_content" style="display:none;">혼합사료</label></p>

<p>            <div id ="feed_type_box" style=" overflow-y:scroll;" class="wr_content <?php echo $is_dhtml_editor ? $config['cf_editor'] : ''; ?>" placeholder="특이사항"></p>

<p>                <table style="width:100%;"></p>

<p>                    <thead></p>

<p>                        <tr style="background-color:#eeefff; height:40px; margin-top:10px; padding:18px; border-radius:7px;"></p>

<p>                            <th>사료명</th></p>

<p>                            <th>투입량입력</th></p>

<p>                            <th>0.0</th></p>

<p>                            <th>투입비율</th></p>

<p>                            <th>선택제거</th></p>

<p>                        </tr></p>

<p>                    </thead></p>

<p>                    <tbody></p>

<p>                        </p>

<p>                    </tbody></p>

<p>                </table></p>

<p>            </div></p>

<p>

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

 

</p>

<p><script></p>

<p>        function addFeedName(e){</p>

<p>            cnt ++;</p>

<p>            $("#feed_type_box tbody").append("<tr id='redbackground' class='removeButton"+cnt+"'>");</p>

<p>            $("#feed_type_box tbody").append("<td><span class='removeButton"+cnt+"'>"+feedIdRandom+"</span></td>");</p>

<p>            $("#feed_type_box tbody").append("<td><input type='text' name='wr_content_name[0]' class='removeButton"+cnt+"'></td>");</p>

<p>            $("#feed_type_box tbody").append("<td><input type='text' name='wr_content_name[1]' class='removeButton"+cnt+"'></td>");</p>

<p>            $("#feed_type_box tbody").append("<td><input type='text' name='wr_content_name[2]' class='removeButton"+cnt+"'></td>");</p>

<p>            $("#feed_type_box tbody").append("<td><input type='button' id='removeButton' onclick='removeContent(this);' class='removeButton"+cnt+"' value='제거'></td>");</p>

<p>            $("#feed_type_box tbody").append("</tr>");</p>

<p>        }</p>

<p></script></p>

<p>

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

 

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

 

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

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
유판
4년 전

</p>

<p><?php

if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

 

$wr_content = "$wr_content_name[0] $wr_content_name[1] $wr_content_name[2]";</p>

<p> </p>

<p>// 쿼이 처리

$sql = " update $write_table ";</p>

<p> </p>

<p>// 동적배열 쿼리 처리</p>

<p>$wr_content_add = '';</p>

<p>for($i=0; $i < 2; $i++){</p>

<p>   if( isset(wr_content_name[$i]) ){</p>

<p>      if($wr_content_add){</p>

<p>         $wr_content_add = '☞'; // 구분자 문자</p>

<p>      }</p>

<p>         $wr_content_add = wr_content_name[$i];</p>

<p>   }</p>

<p>}</p>

<p>$wr_content .= $wr_content_add;</p>

<p> </p>

<p>$sql .= " set  wr_content = '$wr_content' ";</p>

<p>$sql .= " where wr_id = '$wr_id' ";

sql_query($sql);

?></p>

<p>

 

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

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

 

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

 

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 5개

승슝
4년 전
개수가 지금 두개인게 아니라 추가 버튼을 누를때마다 3개씩 입력칸이 증가하는 거여서요!!!
[code]
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];
}
}
[/code]
이 방식으로 진행하려면 $i<2 이 부분을 추가된 갯수만큼 가져와야될텐데 추가된 행의 개수를 write_update.skin.php로 가져올 수 있는 방법은 없을까요?
유판
4년 전
3개씩 입력칸이 증가되는거라면, hidden input으로 몇번 눌렀는지도 보내시면 됩니다.

그게 아니면, wr_content_name을 그냥 []으로 놓으시고 wr_content_name의 length만큼 만복시켜도 되고요.
승슝
4년 전
아 감사합니다!!! 알려주신대로 지금 for로 반복문을 돌리고 전 length 안 쓰고 count를 사용했어요!!

write_update.skin.php(정상작동코드)
[code]
for($i=0; $i < count($wr_content_name); $i++){
if( isset($wr_content_name[$i]) ){
$wr_content .= $wr_content_name[$i] ;

}
}
[/code]

write_update.skin.php(구분문자 넣은 코드)
[code]
$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 ;
}
}
[/code]

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

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

그렇게 질문하시면 경우의 수가 너무 많아요 ㅠ
승슝
4년 전
답변 달아주셔서 정말 감사합니다!! 제가 오늘 다시 질문글 수정하려고 다시 작동시켜보니 잘 저장이됩니다!! 정말 감사합니다~~

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인