write.skin 에 새로운 항목을 추가한후 수정시.. 정보
write.skin 에 새로운 항목을 추가한후 수정시..본문
제목대로 ,
write.skin.php 에
원래...이름, 제목, 내용....모 이런거 입력 받자나요....
그런데 새로운 항목을 하나 더 추가해서...
예로 wr_11 를 select 문을 이용하여 추가하였습니다. 새로운 분류가 하나더 생겼구요..
물론, view 화면에서도 제대로 다 나오는 데요...
수정 버튼을 누리면...wr_11 항목이 원래 선택해서 저장한것이 안보이고 디폴트가
보입니다.
수정시 다시 데이터를 불러 올려면,,,,어찌해야 하나요 ?
write.skin.php 에
원래...이름, 제목, 내용....모 이런거 입력 받자나요....
그런데 새로운 항목을 하나 더 추가해서...
예로 wr_11 를 select 문을 이용하여 추가하였습니다. 새로운 분류가 하나더 생겼구요..
물론, view 화면에서도 제대로 다 나오는 데요...
수정 버튼을 누리면...wr_11 항목이 원래 선택해서 저장한것이 안보이고 디폴트가
보입니다.
수정시 다시 데이터를 불러 올려면,,,,어찌해야 하나요 ?
댓글 전체
with (document.fwrite) {
if (typeof(wr_name) != "undefined")
wr_name.focus();
else if (typeof(wr_subject) != "undefined")
wr_subject.focus();
else if (typeof(wr_content) != "undefined")
wr_content.focus();
if (typeof(ca_name) != "undefined")
if (w.value == "u")
ca_name.value = "<?=$write[ca_name]?>";
}
skin/board/skin/basic/write.skin.php에 이런 내용이 있는데
if (typeof(wr_11) != "undefined")
if (w.value == "u")
wr_11.value = "<?=$write['wr_11']?>";
이렇게 변경해 보세요.
if (typeof(wr_name) != "undefined")
wr_name.focus();
else if (typeof(wr_subject) != "undefined")
wr_subject.focus();
else if (typeof(wr_content) != "undefined")
wr_content.focus();
if (typeof(ca_name) != "undefined")
if (w.value == "u")
ca_name.value = "<?=$write[ca_name]?>";
}
skin/board/skin/basic/write.skin.php에 이런 내용이 있는데
if (typeof(wr_11) != "undefined")
if (w.value == "u")
wr_11.value = "<?=$write['wr_11']?>";
이렇게 변경해 보세요.
with (document.fwrite) {
if (typeof(wr_name) != "undefined")
wr_name.focus();
else if (typeof(wr_subject) != "undefined")
wr_subject.focus();
else if (typeof(wr_content) != "undefined")
wr_content.focus();
if (typeof(ca_name) != "undefined")
if (w.value == "u")
ca_name.value = "<?=$write[ca_name]?>";
if (typeof(wr_11) != "undefined")
if (w.value == "u")
wr_11.value = "<?=$write['wr_11']?>";
이렇게 아래에 추가 하였는데 변화가 없네요....
그리고, 셀렉트가 와 일반 필드 wr_10 이 있다고 하면
with (document.fwrite) {
if (typeof(wr_name) != "undefined")
wr_name.focus();
else if (typeof(wr_subject) != "undefined")
wr_subject.focus();
else if (typeof(wr_content) != "undefined")
wr_content.focus();
if (typeof(ca_name) != "undefined")
if (w.value == "u")
ca_name.value = "<?=$write[ca_name]?>";
if (typeof(wr_11) != "undefined")
if (w.value == "u")
wr_11.value = "<?=$write['wr_11']?>";
if (typeof(wr_10) != "undefined")
if (w.value == "u")
wr_10.value = "<?=$write['wr_10']?>";
이렇게 해야 하나요 ?
2개 다 해밨는데...변화가 없습니다.
if (typeof(wr_name) != "undefined")
wr_name.focus();
else if (typeof(wr_subject) != "undefined")
wr_subject.focus();
else if (typeof(wr_content) != "undefined")
wr_content.focus();
if (typeof(ca_name) != "undefined")
if (w.value == "u")
ca_name.value = "<?=$write[ca_name]?>";
if (typeof(wr_11) != "undefined")
if (w.value == "u")
wr_11.value = "<?=$write['wr_11']?>";
이렇게 아래에 추가 하였는데 변화가 없네요....
그리고, 셀렉트가 와 일반 필드 wr_10 이 있다고 하면
with (document.fwrite) {
if (typeof(wr_name) != "undefined")
wr_name.focus();
else if (typeof(wr_subject) != "undefined")
wr_subject.focus();
else if (typeof(wr_content) != "undefined")
wr_content.focus();
if (typeof(ca_name) != "undefined")
if (w.value == "u")
ca_name.value = "<?=$write[ca_name]?>";
if (typeof(wr_11) != "undefined")
if (w.value == "u")
wr_11.value = "<?=$write['wr_11']?>";
if (typeof(wr_10) != "undefined")
if (w.value == "u")
wr_10.value = "<?=$write['wr_10']?>";
이렇게 해야 하나요 ?
2개 다 해밨는데...변화가 없습니다.
잘안되서 wr_1을 만들어서 테스트 해보았습니다.
안될때
<input class="field" style="width:100%;" name=wr_1 itemname="전화번호" value="<?=$wr_1?>">
수정후
<input class="field" style="width:100%;" name=wr_1 itemname="전화번호" value="<?=$write[wr_1]?>">
잘되네요.....감사합니다.
안될때
<input class="field" style="width:100%;" name=wr_1 itemname="전화번호" value="<?=$wr_1?>">
수정후
<input class="field" style="width:100%;" name=wr_1 itemname="전화번호" value="<?=$write[wr_1]?>">
잘되네요.....감사합니다.
그런데, 셀렉트 박스와 라디오 버튼은 어떻게 해야 할까요 ?
<input name="wr_9" type="radio" value="1"> 모 이런식으로 되어 있어서,,
<input name="wr_9" type="radio" value="<?=$write[wr_9]?>=1"> 이런식으로 바꿔밨는데
안되네요...
셀렉트 문은 되는것도 있고, 안되는것도 있어요..
<select name='wr_4' value="<?=$write[wr_4]?>" onChange="haps(this);" class=select>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
이렇게 하는게 아닌가요 ? 안되네요...
</select>
<input name="wr_9" type="radio" value="1"> 모 이런식으로 되어 있어서,,
<input name="wr_9" type="radio" value="<?=$write[wr_9]?>=1"> 이런식으로 바꿔밨는데
안되네요...
셀렉트 문은 되는것도 있고, 안되는것도 있어요..
<select name='wr_4' value="<?=$write[wr_4]?>" onChange="haps(this);" class=select>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
이렇게 하는게 아닌가요 ? 안되네요...
</select>
두가지 방법이 있습니다.
먼저 스크립트의 경우입니다.
1. 스크립트를 추가하는 방법
라디오와 체크박스를 선언한 하위에
<script language='javascript>document.폼이름.인풋이름.value='<?=해당속성변수?>';</script>
를 삽입하는 방법입니다.
즉 fwrite 라는 폼안에 wr_10 이 라디오,체크박스,셀렉트라 하면
document.fwrite.wr_10.value='<?=$write['wr_10']?>';
이렇게 해주시면 됩니다.value를 태그안에서 지정해주면 말씀하신대로 될때도 있고 안될때도 있습니다. 딱히 조건이 있다기 보다 버젼차이라고 알고 있습니다.
2.php삼항연산자를 이용하는 방법.
이방법이 코딩은 힘듭니다만 어떻게 보면 안정적입니다. 이유는 value가 잘못 지정될경우 위의 스크립트는 디폴트 체크가 되지 않습니다. 예를들어 위의 경우 옵션이 1~4까지 있는데 5가 들어왔다면
그냥 null이 셀렉트 됩니다. 또한 로딩이 다 안됐는데 사용자가 선택하면 브라우저가 삽질합니다. 요즘은 빨라져서 그럴일이 없지만요.
삼항연산자로 선택하는 방법은 다음과 같습니다 , 라디오의 경우를 예를들겠습니다.
<input type="radio" name="wr_10" value="X">X
<input type="radio" name="wr_10" value="Y">Y
라고 예를 들면
<input type="radio" name="wr_10" value="X" <?($view['wr_10']=="X"?"checked":"")?>>X
<input type="radio" name="wr_10" value="Y" <?($view['wr_10']=="Y"?"checked":"")?>>Y
이런식으로 즉석 조건문으로 값이 같을경우 checked를 붙여주게끔 만드는 것입니다.
라디오와 체크박스는 이렇게 하시면 되구요.
셀렉트문은
<select name="wr_10">
<option value='1' <?=($view['wr_10']=='1'?"selected":"")?>>1</option>
<option value='2' <?=($view['wr_10']=='2'?"selected":"")?>>2</option>
...
</select>
이렇게 하시면 됩니다.
두가지 방법은 그때그때 장단점이 있습니다.두가지 다 해보시고 맘에드는 방법을 쓰시면 될듯합니다.
먼저 스크립트의 경우입니다.
1. 스크립트를 추가하는 방법
라디오와 체크박스를 선언한 하위에
<script language='javascript>document.폼이름.인풋이름.value='<?=해당속성변수?>';</script>
를 삽입하는 방법입니다.
즉 fwrite 라는 폼안에 wr_10 이 라디오,체크박스,셀렉트라 하면
document.fwrite.wr_10.value='<?=$write['wr_10']?>';
이렇게 해주시면 됩니다.value를 태그안에서 지정해주면 말씀하신대로 될때도 있고 안될때도 있습니다. 딱히 조건이 있다기 보다 버젼차이라고 알고 있습니다.
2.php삼항연산자를 이용하는 방법.
이방법이 코딩은 힘듭니다만 어떻게 보면 안정적입니다. 이유는 value가 잘못 지정될경우 위의 스크립트는 디폴트 체크가 되지 않습니다. 예를들어 위의 경우 옵션이 1~4까지 있는데 5가 들어왔다면
그냥 null이 셀렉트 됩니다. 또한 로딩이 다 안됐는데 사용자가 선택하면 브라우저가 삽질합니다. 요즘은 빨라져서 그럴일이 없지만요.
삼항연산자로 선택하는 방법은 다음과 같습니다 , 라디오의 경우를 예를들겠습니다.
<input type="radio" name="wr_10" value="X">X
<input type="radio" name="wr_10" value="Y">Y
라고 예를 들면
<input type="radio" name="wr_10" value="X" <?($view['wr_10']=="X"?"checked":"")?>>X
<input type="radio" name="wr_10" value="Y" <?($view['wr_10']=="Y"?"checked":"")?>>Y
이런식으로 즉석 조건문으로 값이 같을경우 checked를 붙여주게끔 만드는 것입니다.
라디오와 체크박스는 이렇게 하시면 되구요.
셀렉트문은
<select name="wr_10">
<option value='1' <?=($view['wr_10']=='1'?"selected":"")?>>1</option>
<option value='2' <?=($view['wr_10']=='2'?"selected":"")?>>2</option>
...
</select>
이렇게 하시면 됩니다.
두가지 방법은 그때그때 장단점이 있습니다.두가지 다 해보시고 맘에드는 방법을 쓰시면 될듯합니다.
헐 답글쓰는동안 알아내셨네요.
저 글이 더 정리 잘되어있네요 ㄷㄷ
저 글이 더 정리 잘되어있네요 ㄷㄷ
감사합니다. 쵸코님 근데요 한가지 문제가 있어요......
내부에 쓸때는 잘안되서요...
"<select name='wr_2' value=<?=$write[wr_2]?> onchange='moneys(this)'>
<option value='1'>10</option>
<option value='2'>20</option>
<option value='3'>30</option>
<option value='4'>40</option>
</select>";
원소스가 이런데요...이걸 저 위에 기준으로 바꿨는데요..
"<select name='wr_2' onchange='moneys(this)'>
<option value='1' <? if($write[wr_2] == 1) echo " selected "; ?>>1</option>
<option value='2' <? if($write[wr_2] == 2) echo " selected "; ?>>2</option>
<option value='3' <? if($write[wr_2] == 3) echo " selected "; ?>>3</option>
<option value='4' <? if($write[wr_2] == 4) echo " selected "; ?>>4</option>
</select>";
게 수정했는데 잘안되네요....안에다 쓸때는 헷갈려요..ㅠ.ㅠ
내부에 쓸때는 잘안되서요...
"<select name='wr_2' value=<?=$write[wr_2]?> onchange='moneys(this)'>
<option value='1'>10</option>
<option value='2'>20</option>
<option value='3'>30</option>
<option value='4'>40</option>
</select>";
원소스가 이런데요...이걸 저 위에 기준으로 바꿨는데요..
"<select name='wr_2' onchange='moneys(this)'>
<option value='1' <? if($write[wr_2] == 1) echo " selected "; ?>>1</option>
<option value='2' <? if($write[wr_2] == 2) echo " selected "; ?>>2</option>
<option value='3' <? if($write[wr_2] == 3) echo " selected "; ?>>3</option>
<option value='4' <? if($write[wr_2] == 4) echo " selected "; ?>>4</option>
</select>";
게 수정했는데 잘안되네요....안에다 쓸때는 헷갈려요..ㅠ.ㅠ
echo 문은 아무래도 속도가 html 자체보다 느릴수밖에 없어서
저는 주로 저렇게 쓰다보니 저리 되었습니다.
echo 문 안에 쓰신다면
if문을 저렇게 쓰시면 복잡해집니다.
echo "<select name='wr_2' onchange='moneys(this)'>
<option value='1' ".($write['wr_2']=='1'?"selected":"").">1</option>
<option value='2' ".($write['wr_2']=='2'?"selected":"").">2</option>
...
</select>";
이런식으로 해보세요.
"를 일단 중간에 마감하고 .을 이용해서 문자열을 붙여주되 삼항연산자를 사용해서(저기 if문을 넣기는 좀 그렇잖아요.) 조건부 문자열을 넣어주는겁니다.
저는 주로 저렇게 쓰다보니 저리 되었습니다.
echo 문 안에 쓰신다면
if문을 저렇게 쓰시면 복잡해집니다.
echo "<select name='wr_2' onchange='moneys(this)'>
<option value='1' ".($write['wr_2']=='1'?"selected":"").">1</option>
<option value='2' ".($write['wr_2']=='2'?"selected":"").">2</option>
...
</select>";
이런식으로 해보세요.
"를 일단 중간에 마감하고 .을 이용해서 문자열을 붙여주되 삼항연산자를 사용해서(저기 if문을 넣기는 좀 그렇잖아요.) 조건부 문자열을 넣어주는겁니다.
지금 모가 꼬였는지 아구,,다시 해보고 있어요...
원래 소스가
.......
} else {
type_dec.innerHTML =
"<select name='wr_2' onchange='moneys(this)'>
<option value='1'>10</option>
<option value='2'>20</option>
<option value='3'>30</option>
<option value='4'>40</option>
</select>";
}
모 이런식인데요...이걸 쵸코님 말씀대로 끈어서 해보구 있습니다. 근데..졸려서 그런지
계속 꼬이네요.. 오늘은 요기까지 하고 고만 자야겠습니다. 답변 감사드리고요.. 좋은 밤
편안한시간 되세요...제 집사람도 쵸코님께 고맙다고 하네요...
원래 소스가
.......
} else {
type_dec.innerHTML =
"<select name='wr_2' onchange='moneys(this)'>
<option value='1'>10</option>
<option value='2'>20</option>
<option value='3'>30</option>
<option value='4'>40</option>
</select>";
}
모 이런식인데요...이걸 쵸코님 말씀대로 끈어서 해보구 있습니다. 근데..졸려서 그런지
계속 꼬이네요.. 오늘은 요기까지 하고 고만 자야겠습니다. 답변 감사드리고요.. 좋은 밤
편안한시간 되세요...제 집사람도 쵸코님께 고맙다고 하네요...
네 주무세요. 저도 부인 있었으면 좋겠네요. ㅠ
좋으신분 만나실 거에요...^^
근데 알려주신 소스대로 수정했는데..암것도 안나와요...
echo "<select name='wr_2' onchange='moneys(this)'>
<option value='1' ".($write['wr_2']=='1'?"selected":"").">1</option>
<option value='2' ".($write['wr_2']=='2'?"selected":"").">2</option>
</select>";
로 했을때와
"<select name='wr_2' onchange='moneys(this)'>
<option value='1' <? if($write[wr_2] == 1) echo " selected "; ?>>1</option>
<option value='2' <? if($write[wr_2] == 2) echo " selected "; ?>>2</option>
<option value='3' <? if($write[wr_2] == 3) echo " selected "; ?>>3</option>
<option value='4' <? if($write[wr_2] == 4) echo " selected "; ?>>4</option>
</select>";
했을때 똑같이 화면에선 암것도 안나와요....
이게 원래 wr_1의 값에 따라 wr_2셀렉트 값이 달라지는소스거든요..
따라서, 원 소스에서는 wr_1 이 선택 되기 전까지 wr-2는 표시가 안되고..
선택하는 순간 wr_2의 내용이 나오게 되어 있습니다.
type_dec.innerHTML =
"<select name='wr_2' onchange='moneys(this)'>
<option value='1'>10</option>
<option value='2'>20</option>
<option value='3'>30</option>
<option value='4'>40</option>
</select>";
처럼 원래 소스에서는 wr_1의 값에 따라 제대로 보여지거든요... 근데 문제는 수정할때
안보여서 질문드린거구요... ㅎㅎ
안보이는 문제 다른것은 라디오, 체크박스등은 다 해결했는데...이놈이 말썽이네요...
정안되면 수정기능을 빼버릴까도 생각중...ㅎㅎ
한번쓰면 못고치는..ㅎㅎ
근데 알려주신 소스대로 수정했는데..암것도 안나와요...
echo "<select name='wr_2' onchange='moneys(this)'>
<option value='1' ".($write['wr_2']=='1'?"selected":"").">1</option>
<option value='2' ".($write['wr_2']=='2'?"selected":"").">2</option>
</select>";
로 했을때와
"<select name='wr_2' onchange='moneys(this)'>
<option value='1' <? if($write[wr_2] == 1) echo " selected "; ?>>1</option>
<option value='2' <? if($write[wr_2] == 2) echo " selected "; ?>>2</option>
<option value='3' <? if($write[wr_2] == 3) echo " selected "; ?>>3</option>
<option value='4' <? if($write[wr_2] == 4) echo " selected "; ?>>4</option>
</select>";
했을때 똑같이 화면에선 암것도 안나와요....
이게 원래 wr_1의 값에 따라 wr_2셀렉트 값이 달라지는소스거든요..
따라서, 원 소스에서는 wr_1 이 선택 되기 전까지 wr-2는 표시가 안되고..
선택하는 순간 wr_2의 내용이 나오게 되어 있습니다.
type_dec.innerHTML =
"<select name='wr_2' onchange='moneys(this)'>
<option value='1'>10</option>
<option value='2'>20</option>
<option value='3'>30</option>
<option value='4'>40</option>
</select>";
처럼 원래 소스에서는 wr_1의 값에 따라 제대로 보여지거든요... 근데 문제는 수정할때
안보여서 질문드린거구요... ㅎㅎ
안보이는 문제 다른것은 라디오, 체크박스등은 다 해결했는데...이놈이 말썽이네요...
정안되면 수정기능을 빼버릴까도 생각중...ㅎㅎ
한번쓰면 못고치는..ㅎㅎ
이제 무슨말인지 알꺼 같네요.
php에서 따옴표를 쓰는게 아니고 스크립트 내에서군요
자바스크립트 내에서 줄띄우면 에러납니다.
한줄로 써주셔야 하는데 처음이라 눈아프실테니
대충 아무이름으로나 변수를 잡아주시고
$tmpscript = "<select name='wr_2' onchange='moneys(this)'>
<option value='1' ".($write['wr_2']=='1'?"selected":"").">1</option>
<option value='2' ".($write['wr_2']=='2'?"selected":"").">2</option>
</select>";
로 할당하신 다음에
$tmpscript = str_replace("\n","",$tmpscript); //줄바꾸기 문자를 없애주시고요
이건 중간에 php문 있는쪽 적당한곳에 넣어주세요.
이후
type_dec.innerHTML="<?=$tmpscript?>"; 로 해주시면 되겠네요.
"<select name='wr_2' onchange='moneys(this)'>
<option value='1' <? if($write[wr_2] == 1) echo " selected "; ?>>1</option>
<option value='2' <? if($write[wr_2] == 2) echo " selected "; ?>>2</option>
<option value='3' <? if($write[wr_2] == 3) echo " selected "; ?>>3</option>
<option value='4' <? if($write[wr_2] == 4) echo " selected "; ?>>4</option>
</select>";
를
"<select name='wr_2' onchange='moneys(this)'><option value='1' <? if($write[wr_2] == 1) echo " selected "; ?>>1</option><option value='2' <? if($write[wr_2] == 2) echo " selected "; ?>>2</option> <option value='3' <? if($write[wr_2] == 3) echo " selected "; ?>>3</option> <option value='4' <? if($write[wr_2] == 4) echo " selected "; ?>>4</option> </select>";
이렇게 한줄로 바꿔주셔도 되긴 합니다.
php에서 따옴표를 쓰는게 아니고 스크립트 내에서군요
자바스크립트 내에서 줄띄우면 에러납니다.
한줄로 써주셔야 하는데 처음이라 눈아프실테니
대충 아무이름으로나 변수를 잡아주시고
$tmpscript = "<select name='wr_2' onchange='moneys(this)'>
<option value='1' ".($write['wr_2']=='1'?"selected":"").">1</option>
<option value='2' ".($write['wr_2']=='2'?"selected":"").">2</option>
</select>";
로 할당하신 다음에
$tmpscript = str_replace("\n","",$tmpscript); //줄바꾸기 문자를 없애주시고요
이건 중간에 php문 있는쪽 적당한곳에 넣어주세요.
이후
type_dec.innerHTML="<?=$tmpscript?>"; 로 해주시면 되겠네요.
"<select name='wr_2' onchange='moneys(this)'>
<option value='1' <? if($write[wr_2] == 1) echo " selected "; ?>>1</option>
<option value='2' <? if($write[wr_2] == 2) echo " selected "; ?>>2</option>
<option value='3' <? if($write[wr_2] == 3) echo " selected "; ?>>3</option>
<option value='4' <? if($write[wr_2] == 4) echo " selected "; ?>>4</option>
</select>";
를
"<select name='wr_2' onchange='moneys(this)'><option value='1' <? if($write[wr_2] == 1) echo " selected "; ?>>1</option><option value='2' <? if($write[wr_2] == 2) echo " selected "; ?>>2</option> <option value='3' <? if($write[wr_2] == 3) echo " selected "; ?>>3</option> <option value='4' <? if($write[wr_2] == 4) echo " selected "; ?>>4</option> </select>";
이렇게 한줄로 바꿔주셔도 되긴 합니다.
스크립트내에서는 줄띄우면 안되는거 였군요...
할당 방법 보단 걍 한줄 방법으로 갈려구요....
적용하니깐 잘됩니다.
문제는 wr_1 값의 선택후에 wr_2 가 선택되도록 되어 있어서
수정할때 wr_2가 보이지 않다가, wr_1의 값을 변경하면 그때서야 보이는 건데...
이건 원 소스가 그렇게 짜져서 어쩔수 없을듯 보이네요....
이제 수정할때 값 표시 되는 것은 어떤것이 나오더라도 다 해결할 수 있을거 같아요...
정말 감사합니다. 편안한 저녁 되세요~
할당 방법 보단 걍 한줄 방법으로 갈려구요....
적용하니깐 잘됩니다.
문제는 wr_1 값의 선택후에 wr_2 가 선택되도록 되어 있어서
수정할때 wr_2가 보이지 않다가, wr_1의 값을 변경하면 그때서야 보이는 건데...
이건 원 소스가 그렇게 짜져서 어쩔수 없을듯 보이네요....
이제 수정할때 값 표시 되는 것은 어떤것이 나오더라도 다 해결할 수 있을거 같아요...
정말 감사합니다. 편안한 저녁 되세요~
저장값