셀렉트 질문

셀렉트 질문

QA

셀렉트 질문

본문

계속 질문드려 죄송합니다..

 

아래처럼 셀렉트 값이 나타나게는 했는데...

 

나타난 값을 $x 저장하게 하려면 어떻게 해야 하나요...

 

저장된 $x 값으로 추가 옵션을 하려고 하는데....

 

 

 

 <tr>

            <th scope="row"><label for="wr_1">제목</label></th>

            <td><select name="wr_1" >

              <option >aa</option>

              <option selected="selected">bb</option>

              <option>cc</option>

            </select></td>

        </tr>

  

<div id="test"> $x= 출력된 텍스트 값     </div>

 

<script>

$( "select" )

  .change(function () {

    var str = "";

    $( "select option:selected" ).each(function() {

      str += $( this ).text() + " ";

    });

    $( "#test" ).text( str );

  })

  .change();

</script> 

이 질문에 댓글 쓰기 :

답변 3

해당글의 wr_1으로 저장됐을겁니다. 목록이라면 $list[$i]['wr_1'], 뷰페이지면 $view['wr_1'], 글쓰기페이지면 $write['wr_1'] 을 사용해보세요.

아.. $x라고 하셔서 php부분인줄 알았습니다. 쓰기페이지에서 동적으로 뭔가를 하시려는듯?

우선.. 위 소스를 보면 label이 있는데 label의 for는 대상이 id입니다.

고로 <select name="wr_1" id="wr_1"> 이렇게 되야겠죠.

그러면 스크립트도 wr_1 한정으로 바꿔보겠습니다.

 

<script>

var x = '';

$('select#wr_1').change(function(){

x = $(this).find('option:selected').text();

$('#test').text(x);

});

</script>

 

구체적으로 하시려는게 뭔지를 알수가 없어서 자세한 답변은 어렵겠군요.

이렇게 하면 해당항목의 값이 바뀌면 그 값의 내용이 div#test에 뿌려지면서 x라는 변수에 저장됩니다.

전역변수로 값이 저장되니 저 부분 외의 스크립트에서도 해당변수의 참조가 가능합니다.

다만 이 변수는 자바스크립트 내의 변수인거고 php와는 상관없으니 php코드에서 뭔가를 어떻게 하고싶으셔도 불가능합니다.

어차피 동적으로 뭔가를 컨트롤 하고 싶으신거라면 자바스크립트로 해야 할테니 저런식으로 하면 될거라 보입니다.

$x나 $aa를 언급하시는걸 보니.. 서버측 처리와 클라이언트측 처리에 대한 구분이 없으신듯 합니다..

아예 원하시는 바를 디테일하게 질문하시면 시원한 답변을 얻을수도 있어요. ^^;

정말 감사합니다...자세한 설명 정말 감사합니다...제가 아직 공부중이라 많이 부족하네요...^^

귀찮으신데 한번만 더 질문드려볼께요....ㅠㅠ



값이 $x 에 들어오면....그걸로

  $sql = " select * from g5_write_entry where wr_4 = '$x' ";

이런식으로 다른 데이터 값을 불러올려고 했던 것입니다...



그런방법을 이런식으로 해결하려 했는데...잘 안되네요..^^

라디오 버튼 선택만으로는 선택된 DB 값을 저장하기 누르지 않고, 현재 페이지에서 불러오는 방법을 몰라서 질문 드렸습니다..



혹여 이 방법 말고,

좋은 방법이 있다면 안내 부탁드립니다...

예를들어  라디오 버튼을 만들고 (선택하게 한다음 ) 그 옆에 버튼 단추를 누르면 그 값만 화면이 안 바뀌고 db 에 저장되는 방법이라든지요..^^

그러면 저장되어 있으니까 위에 처럼 불러 올 수 있지 않을까요..

말씀하시는건 php(서버측) 처리인데.. 동적으로는 어렵구요..

ajax나 히든프레임을 이용하는 방법은 있겠으나 새글을 작성하는 중에는 저장할 대상(원글)이 없으니 뭔가를 저장하는건 그마져도 애매하겠네요.

근데 선택값은 wr_1에 저장하는데 wr_4에서 같은 값을 가져오는건가요? 뭔가 좀 헷갈리기도.. ^^;;

정확히 하시려는게 어떤건지 알면 답하기도 좀 편했을텐데.. 일단 대충 예상되는쪽으로 방향을 잡아보겠습니다.

 

값이 같은 모든글을 가져와서 어떤 처리를 하시려는지는 도통 감이 잡히질 않아서 그냥 같은 값의 건수를 구해오는걸로 해보겠습니다.

ajax는 복잡하니 그냥 글쓰는 시점으로 db에서 값들을 가져와서 자바스크립트로 변수에 값을 넣어두고 wr_1의 값이 바뀔때 해당값의 건수를 배열변수에서 꺼내오는 걸로요..

위치는 적당히 넣어주셔도 상관없을겁니다.

 


<?php$sql = 'select wr_4,count(wr_4) as cnt from g5_write_entry group by wr_4';
$result = sql_query($sql);
$arr_wr4_name = $arr_wr4 = array();
$i = 0;
while($row = sql_fetch_array($result)) {
    $arr_wr4_name[$i] = $row['wr_4'];
    $arr_wr4[$i] = $row['cnt'];
    $i++;
}
$wr4_names = '"'.implode('","',$arr_wr4_name).'"';
$wr4s = '"'.implode('","',$arr_wr4).'"';
?><script>
var wr4_names = [<?php echo $wr4_names;?>];
var wr4s = [<?php echo $wr4s;?>];
var x = '';
$(document).ready(function(){
    $('select#wr_1').change(function(){
        x = $(this).find('option:selected').text();
	    var cnt = '';
        for(var i=0; i<wr4_names.length; i++) {
            if(wr4_names[i]==x) {
                cnt = wr4s[i];
    		    break;
            }
	    }
        $('#test').text(x+' cnt :'+cnt);
    });
});
</script>

 

이런식으로 응용해보심은 어떨까 싶은데.. 정확하게 하시려는건 모르겠으니.. ^^;

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

회원로그인

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