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

DB 연동 셀렉트박스 질문입니다. 채택완료

꽁치입니다 4년 전 조회 55,810

</p>

<p><?php

include_once('./_common.php');

    $sql = " select wr_subject from g5_write_sub_01_01 ";

    $res = sql_query($sql);

    for ($i=0; $row = sql_fetch_array($res); $i++) {

          $nm[$i] = $row['wr_1'].'|1|'.$row['wr_2'].'|2|'.$row['wr_3'].'|3|'.$row['wr_4'].'|4|';

    }

?></p>

<p>

<script type="text/javascript">

 function getCataAllId(cmd){

  cmd = eval(cmd);

  cmd2 = cmd +1;

  initCataID(cmd);

  var ch = "";

  for(var idx = 1; idx < cmd2; idx++){

      ch = ch + eval("document.f1.menu"+idx+".value") + "|"+idx+"|";

  }

  var v = 0;

  var temp = "";

  var tempv = "";

  var arg = "";

  for(var m = 0; m < menuArr.length; m ++) {

      arg = menuArr[m].substring(menuArr[m].indexOf("|"+cmd+"|")+3,menuArr[m].indexOf("|"+cmd2+"|")) ;

      temp = menuArr[m].substring(0, menuArr[m].indexOf("|"+cmd+"|")+3);

      if(temp == ch && tempv != arg ){

            v++;

            eval("document.f1.menu"+cmd2+".length = document.f1.menu"+cmd2+".length + 1");

            eval("document.f1.menu"+cmd2+".options["+v+"].value = arg ");

            eval("document.f1.menu"+cmd2+".options["+v+"].text  = arg ");

      }

      if(temp != ch){

          tempv = "";

      }else{

          tempv = menuArr[m].substring(menuArr[m].indexOf("|"+cmd+"|")+3,menuArr[m].indexOf("|"+cmd2+"|"));

      } 

  }

}

 

 function initCataID(cmd){

 cmd = eval(cmd);

  if(cmd == 1){

      document.f1.menu2.length = 1;

      document.f1.menu3.length = 1;

      document.f1.menu4.length = 1;

      document.f1.menu2.selectedIndex = 0;

      document.f1.menu3.selectedIndex = 0;

      document.f1.menu4.selectedIndex = 0;

  }

  if(cmd == 2){

      document.f1.menu3.length = 1;

      document.f1.menu4.length = 1;

      document.f1.menu3.selectedIndex = 0;

      document.f1.menu4.selectedIndex = 0;

  }

  if(cmd == 3){

      document.f1.menu4.length = 1;

      document.f1.menu4.selectedIndex = 0;

  }

 }</p>

<p>

</script></p>

<p>

<form name = 'f1' ></p>

<p><select name = 'menu1' id='menu1' OnChange='javascript:getCataAllId(1)' class="select1">

 <option value="" selected>선택하세요.</option>

</select>

<select name = 'menu2' id='menu2' OnChange='javascript:getCataAllId(2)' class="select2">

 <option value="" selected>선택하세요.</option>

</select>

<select name = 'menu3' id='menu3' OnChange='javascript:getCataAllId(3)' class="select3">

 <option value="" selected>선택하세요.</option>

</select>

<select name = 'menu4' id='menu4' OnChange='javascript:gotomenu()' class="select4">

 <option value="" selected>선택하세요.</option>

</select>

</form></p>

<p>

<script type="text/javascript">

/* JSON encode, parse  */

var stuff = <?php echo json_encode($nm); ?>;

var str = JSON.stringify(stuff);

var menuArr = new Array();

      menuArr= JSON.parse(str);

var z1 = 0;

var temp1 = 0;

  initCataID(1);

  for(var m = 0; m < menuArr.length; m ++) {

      if ( menuArr[m].substring(0, menuArr[m].indexOf("|1|")) != temp1 ){

          document.f1.menu1.length =  document.f1.menu1.length + 1;

          document.f1.menu1.options[z1+1].value = menuArr[m].substring(0, menuArr[m].indexOf("|1|")) ;

          document.f1.menu1.options[z1+1].text = menuArr[m].substring(0, menuArr[m].indexOf("|1|")) ;

          temp1 = menuArr[m].substring(0, menuArr[m].indexOf("|1|"));

          z1++;

      }

      /*  index 1에 중복 제거입니다.  */

  }</p>

<p>function gotomenu()

{

      location.href = '#';

}

</script></p>

<p>

 

sub_01_01 게시판의 wr_1 ,wr_2, wr_3, wr_4 의 여분필드를 불러오는건 잘 됩니다. 그런데,
저장이 안됩니다. 
저장이 된다쳐도 수정시 풀려버릴것 같은데...

어디를 수정해야 하는지 고수님들 조언 부탁 그립니다.^^

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

답변 3개

4년 전

form name = 'f1' 등록버튼은 어디있나요?

어디서 어떻게 저장하는지 알아야 상황에 맞는 답변이 가능합니다

위 코드가 write.skin.php 일부라면 스킨폴더에 write_upate.head.skin.php를 만들고

아래 코드를 넣으세요(menu1~menu4가 wr_1~wr_4에 저장 되어야 나올테니까요)

애초에 게시판 구조에 맞게 이름을 붙이면 아래와 같은 추가 작업이 필요 없을 것인데요

<?

$wr_1 = $menu1; $wr_2 = $menu2; $wr_3 = $menu3; $wr_4 = $menu4;

?>

 

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

답변에 대한 댓글 1개

꽁치입니다
4년 전
위 질문 내용은 저도 검색하다가 알아냈는데요, 그누보드5 에 적용 하고자 합니다.
<form name = 'f1' > 내용은 원래 그누보드
[code]<form name="fwrite" id="fwrite" action="<?php echo $action_url ?>" onsubmit="return fwrite_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off" role="form" class="form">[/code]
에 적용 하고자 하는건데, 저장 방법을 몰라서 질문 드린 겁니다. ^^

기초가 약해서 항상 다른분들 도움으로 많이 배우는중이라..

죄송 합니다.

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

꽁치입니다

</p>

<pre>
<code><form name = 'f1' >
<select name = 'menu1' id='menu1' OnChange='javascript:getCataAllId(1)' class="select1">
 <option value="" selected>선택하세요.</option>
</select>
<select name = 'menu2' id='menu2' OnChange='javascript:getCataAllId(2)' class="select2">
 <option value="" selected>선택하세요.</option>
</select>
<select name = 'menu3' id='menu3' OnChange='javascript:getCataAllId(3)' class="select3">
 <option value="" selected>선택하세요.</option>
</select>
<select name = 'menu4' id='menu4' OnChange='javascript:gotomenu()' class="select4">
 <option value="" selected>선택하세요.</option>
</select>
</form></code></pre>

<p><code>

 

위 <option value="" selected>선택하세요.</option> 는 다중셀렉트 입니다.

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

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

플라이
4년 전

wr_1~4번의 폼을 <input hidden 으로 해서 전송되도록 해주셔야 할듯 한데요

등록시 저장은 어떻게 하고 있는지 파악이 되지 않아 확인은 어렵지만 등록시에 wr_1~4 폼값이 있다면 그 부분에 반영하면 되지만 없다면 추가해서 값을 적용해 주셔야 할듯 합니다.

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

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

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

로그인