글쓰기 할때 동시에 다른 변수도 업데이트 하는 방법?(2000) 정보
글쓰기 할때 동시에 다른 변수도 업데이트 하는 방법?(2000)
본문
안녕하세요?
UTF-8 버젼, cafe24 호스팅을 받고 있습니다.
글쓰기를 할때 간단히 $wr_1 값을 입력 받도록 되어있습니다.
동시에, 새글을 쓸때,
조건문을 사용해서 $wr_2 에다가도 추가로 값을 주고 싶습니다.
(
예] $wr_1 이 "쇼핑몰" 인 경우 $wr_2 에 "shopingmall" 를
if ($write[wr_1] == "쇼핑몰") $wr_2 ="shopingmall"
이런식으로..
)
하지만,
글쓰기 버튼을 누르지 않는 이상, $wr_1 값이 없어서 (눌러야만 업데이트가 되니까)
$wr_2값도 만들지 못합니다 (따로 입력 받지 않으니까)
글쓰기 버튼을 누르고 난 후 ,
skin폴더의 write.skin.php 로 POST방식으로 변수 값을 보내고,
bbs 폴더에 write.php 와 write_update.php에서 SQL dB에 저장되고,
아마도, write_update.skin.php 에서
새글쓰기인 경우 $wr_1 값을 불러와 $wr_2값을 조건에 맞게 입력하고,
수정인 경우 $wr_1 값 변경에따라 역시 $wr_2값을 변경 해야 하는것 같습니다.
어떻게 새글을 쓸때 $wr_1 값을 불러와서 $wr_2에 저장하고, 또는 수정일 경우 업데이트 할 지
방법을 모르겠습니다;; 책, 팁, 질답게시판 찾아가면서 거의 날밤을 샜는데 너무 기초적인것이라 그런지
답변도 찾기 힘들고 ㅠ.ㅠ 막막하더군요;; ㅠ.ㅠ
많은 도움 부탁드립니다.;;
밑에는 참고 하셔도 되고 안하셔도 됩니다 ㅠ.ㅠ
사실은 원래 이유는 그림 파일때문인데요, wr_7로 지정된 2번째 카테고리를 list.skin.php 에서
이미지파일로 출력하려다 보니까
별 수 를 써도 한글 섞인 파일명의 gif 파일은 출력이 엑박으로 나왔습니다;;
일단 실제로 제가 첫 시도 한것은
write.skin.php
다음과 같이 wr_7을 받게 되어있구요
(3중 카테고리 중 2번째 카테고리로써,, 정상 작동 잘 되고 있는 소스입니다.)
<?=$board[bo_7_subj]?>: <select class="ed" name="wr_7" required="required" itemname='<?=$board[bo_7_subj]?>' value="<?=$write[wr_7]?>">
<? if ($write[wr_7]){ echo "<option selected value='$write[wr_7]'>$write[wr_7]</option>"; } else { echo "<option selected value=''>선택하세요</option>"; } echo "$bo_7_option"; echo "</select>"; ?> 원래는 str_replace 함수를 쓸려고 했는데 하도 안되서;;
(UTF-8이라 그런지, wr_7 이 두번째 카테고리라 그런지 여튼
urlencode도 해보고 다 해봐도 안되더군요 ㅠ.ㅠ
아무리 별짓 다 해도 주소창에 치면 되는데, img태그로는 보이지가 않습니다;;
그래서;; switch 도 안먹고;; str_replace 도 안먹어요 ㅠ.ㅠ
결국 무식한 방법으로 했습니다.
다음과 같이 만들었습니다.
<!--//카테고리를 아이콘gif로 -->
<? if ($write[wr_7] == "CJ몰") { $write[wr_9] = "cjmall"; } if ($write[wr_7] == "H몰") { $write[wr_9] = "hmall"; } ~~~
~~~
~~~
~~~
~ 중략
~~~
~~~
if ($write[wr_7] == "GS홈쇼핑") { $write[wr_9] = "gseshop"; } ?>
<input type=hidden name=wr_9 value="<?=$write[wr_9]?>"> <!--//카테고리를 아이콘gif로 변경 끝-->
</form>
이랬더니, 글쓰기를 한번 한 후, 꼭 수정 을 해야만 wr_9에 해당 내용이 들어가는 것이었습니다;;-.-;;;
그래서
다음으로
write_update.skin.php
가 맨 마지막으로 사용된다는 것을 알아내고
DB에 직접 하려 하니까 또 안되네요; 하다하다 하도 복잡해 져서;;
어느새 내가 뭘 하고 있는건지;;
정식 방법으로 배우고 싶어서요 초보가 고중하수님들의 많은 도움 부탁드립니다..
풀소스가 아니라도 좋으니, 정확한 구문을 알려주세요 ㅠ.ㅠ
|
댓글 전체
write.head.skin.php 에서...
if ($w == 'w' or $w == 'r') {
이곳에 글쓰기 할 때의 할일을 적고 // 원글 + 답글
}
else if ($w == 'u' ) { 이곳에 수정할 때의 할일을 적고 수정
} else {
alert("error.\\n\\n");
}
}
if ($w == 'w' or $w == 'r') {
이곳에 글쓰기 할 때의 할일을 적고 // 원글 + 답글
}
else if ($w == 'u' ) { 이곳에 수정할 때의 할일을 적고 수정
} else {
alert("error.\\n\\n");
}
}
불당님 답변 감사합니다. 일단 틀을 잡아주셔서 ..^^
그런데 그 "글쓰기 할때의 할일"/"수정할때의 할일"
을 어떻게 해야 할지 감이 안옵니다 ㅠ.ㅠ 힌트라도 주시면 감사하겠습니다 ㅠ.ㅠ
일단, wr_7의 값이 dB에 들어가 있는 것은 맞나요?
그걸 꺼내어서 if문을 사용해서 조건에 맞는 데이타를 wr_9에 넣어주면 될까요?
wr_7값을 꺼내오려면 어떤 함수,변수를 사용해야 할까요;;
그런데 그 "글쓰기 할때의 할일"/"수정할때의 할일"
을 어떻게 해야 할지 감이 안옵니다 ㅠ.ㅠ 힌트라도 주시면 감사하겠습니다 ㅠ.ㅠ
일단, wr_7의 값이 dB에 들어가 있는 것은 맞나요?
그걸 꺼내어서 if문을 사용해서 조건에 맞는 데이타를 wr_9에 넣어주면 될까요?
wr_7값을 꺼내오려면 어떤 함수,변수를 사용해야 할까요;;
아~ 제가 대충 읽어서... 일반적인 경우의 코드를 적어둔 겁니다.
이경우에는 간단하게 ...
$wr_7 = $wr_1; // 아마 이렇게 하면 될 것 같아요. wr_1의 값을 wr_7에...ㅋㅋ
이경우에는 간단하게 ...
$wr_7 = $wr_1; // 아마 이렇게 하면 될 것 같아요. wr_1의 값을 wr_7에...ㅋㅋ
저두 그럴줄 알았는데 안됩니다 ㅠ.ㅠ 어쨋든 감사합니다.
질문 답변란에 살펴보니 셀렉트 값을 가져올 수 있는 자바스크립트 예가 있더군요(select 태그 안에 onChange)
http://sir.co.kr/bbs/board.php?bo_table=g4_qa&wr_id=49363
음.. 그것을 연구해 보고.. 이왕이면 write.skin.update.php 에서 dB를 사용해서 할 수 있는 방법을 알수 있으면 좋겠네요 ㅠ.ㅠ
질문 답변란에 살펴보니 셀렉트 값을 가져올 수 있는 자바스크립트 예가 있더군요(select 태그 안에 onChange)
http://sir.co.kr/bbs/board.php?bo_table=g4_qa&wr_id=49363
음.. 그것을 연구해 보고.. 이왕이면 write.skin.update.php 에서 dB를 사용해서 할 수 있는 방법을 알수 있으면 좋겠네요 ㅠ.ㅠ
아~ 또 실수했네요. ㅠ..ㅠ
제가 파일을 잘못 알려드렸어요
write_update.head.skin.php에 넣으세요. 그러면 되요
write.skin.php에서 버튼을 누르면 write_update.head.skin.php 불러지고 다음에 update가 됩니다.
따라서, 아래코드만 그곳에 넣으면 됩니다. 너무 머리 안써도 되게 리자님이 다 해뒀어요.
$wr_7 = $wr_1;
제가 파일을 잘못 알려드렸어요
write_update.head.skin.php에 넣으세요. 그러면 되요
write.skin.php에서 버튼을 누르면 write_update.head.skin.php 불러지고 다음에 update가 됩니다.
따라서, 아래코드만 그곳에 넣으면 됩니다. 너무 머리 안써도 되게 리자님이 다 해뒀어요.
$wr_7 = $wr_1;
추가로 이런거 할 때는 관련 파일을 열어서 각각의 파일이 어떻게 연결되었는지 파악하면 쉽습니다.
write.skin.php에서 버튼을 누르면 /bbs/write_update.php를 부르는데 그 파일의 가장 처음에서 호출
하는 것이 write_update.head.skin.php 입니다. 그러니까 이곳에 $wr_7 = $wr_1 이라는 코드를 넣으면
wirte_update에서 insert 또는 update할 때 바로 반영이 되는 것이죠.
킁~ 포인트 주셈. ㅋㅋ
write.skin.php에서 버튼을 누르면 /bbs/write_update.php를 부르는데 그 파일의 가장 처음에서 호출
하는 것이 write_update.head.skin.php 입니다. 그러니까 이곳에 $wr_7 = $wr_1 이라는 코드를 넣으면
wirte_update에서 insert 또는 update할 때 바로 반영이 되는 것이죠.
킁~ 포인트 주셈. ㅋㅋ
write_update.head.skin.php 이
기본 basic 스킨에 포함되어있지 않은 파일이라 ;; 무시하고 있었습니다;;
이제 사라져 가는 기능인가 보구나 했습니다;;
write_update.skin.php 에서는 전혀 안되더니 ㅎㅎ
감사합니다 ~~
진짜 $wr_7 = $wr_1; 요거 하나로 해결이 됬네요;;
if ($wr7 == "CJ몰") $wr_9="cjmall";
ㅋㅋ
사실은 위의 자바스크립트 select 태그 안에 onChange 쓰는 것으로도 해결은 보았습니다 ㅋㅋ
그리고 바로 답변 쓰러 왔는데 후아 정말 간단히 되네요^^ 감사합니다 다시 스크립트 지워야 겠네요 ㅎㅎ
불당님 개인적으로 스킨이랑 팁이랑 아주아주 잘 쓰고 있습니다. 화이팅 하세요~~ 감사합니다.
마음으로 200000점 쏠께요 ㅎ
기본 basic 스킨에 포함되어있지 않은 파일이라 ;; 무시하고 있었습니다;;
이제 사라져 가는 기능인가 보구나 했습니다;;
write_update.skin.php 에서는 전혀 안되더니 ㅎㅎ
감사합니다 ~~
진짜 $wr_7 = $wr_1; 요거 하나로 해결이 됬네요;;
if ($wr7 == "CJ몰") $wr_9="cjmall";
ㅋㅋ
사실은 위의 자바스크립트 select 태그 안에 onChange 쓰는 것으로도 해결은 보았습니다 ㅋㅋ
그리고 바로 답변 쓰러 왔는데 후아 정말 간단히 되네요^^ 감사합니다 다시 스크립트 지워야 겠네요 ㅎㅎ
불당님 개인적으로 스킨이랑 팁이랑 아주아주 잘 쓰고 있습니다. 화이팅 하세요~~ 감사합니다.
마음으로 200000점 쏠께요 ㅎ
if 가 아닌 switch 문장을 써야 간단 합니다.
switch ($wr7) {
case 'CJ몰' : $wr_9 = 'cjmall'; break;
case 'H몰' : $wr_9 = 'hmall'; break;
...
default : $wr_9 = ''; // 아무것도 지정되지 않았을 때
}
switch ($wr7) {
case 'CJ몰' : $wr_9 = 'cjmall'; break;
case 'H몰' : $wr_9 = 'hmall'; break;
...
default : $wr_9 = ''; // 아무것도 지정되지 않았을 때
}
아..제목에 변수가 아니고 여분 필드 라고 수정할려고 했는데 코멘트가 달려서 수정이 안되네요~~
참고로 간단히 해결 했으니
자바스크립트 사용 write.skin.php 방법 적겠습니다 ^^ 설마 없겠지만 참고하실분을 위해..ㅎ
<SCRIPT TYPE="text/javascript">
<!--
function inputText(){
//셀렉트 박스에서 선택된 값을 불러옴
var gifsicon = document.fwrite.wr_7.value;
if ( gifsicon == 'CJ몰' ){
//텍스트박스의 값을 설정
document.fwrite.wr_9.value = 'cjmall';
}else if ( gifsicon == 'H몰' ){
//텍스트박스의 값을 설정
document.fwrite.wr_9.value = 'hmall';
}else if ( gifsicon == '삼성몰' ){
//텍스트박스의 값을 설정
document.fwrite.wr_9.value = 'ssmall';
}
}
// -->
</SCRIPT>
중략
//밑에 해당 셀렉트 테그에Onchange="inputText()"추가
<select name="wr_7" Onchange="inputText()" itemname='<?=$board[bo_7_subj]?>' value="<?=$write[wr_7]?>">
//변경하고 싶은 여분필드
<input type=text name="wr_9" value="<?=$write[wr_9]?>">
자바스크립트 사용 write.skin.php 방법 적겠습니다 ^^ 설마 없겠지만 참고하실분을 위해..ㅎ
<SCRIPT TYPE="text/javascript">
<!--
function inputText(){
//셀렉트 박스에서 선택된 값을 불러옴
var gifsicon = document.fwrite.wr_7.value;
if ( gifsicon == 'CJ몰' ){
//텍스트박스의 값을 설정
document.fwrite.wr_9.value = 'cjmall';
}else if ( gifsicon == 'H몰' ){
//텍스트박스의 값을 설정
document.fwrite.wr_9.value = 'hmall';
}else if ( gifsicon == '삼성몰' ){
//텍스트박스의 값을 설정
document.fwrite.wr_9.value = 'ssmall';
}
}
// -->
</SCRIPT>
중략
//밑에 해당 셀렉트 테그에Onchange="inputText()"추가
<select name="wr_7" Onchange="inputText()" itemname='<?=$board[bo_7_subj]?>' value="<?=$write[wr_7]?>">
//변경하고 싶은 여분필드
<input type=text name="wr_9" value="<?=$write[wr_9]?>">