제목 | javascipt의 연관 배열을 뷰페이지로 보낼려면 어떻게 해야되나요? | ||
---|---|---|---|
글쓴이 | 정수리 | 작성시각 | 2016/08/30 09:09:52 |
|
|||
javascipt에서 연관배열을 생성하여
팝업창을 띄우기 위해 "http://localhost/jds/index.php/gigwan_c/tax_mopopup/"+cf_info; 이렇게 경로의 마지막에 연관배열을 붙이고 팝업창을 띄우니
허락되지 않은 문자열이 있다? 라는 에러가 발생하더라구요
그래서 cf_info 부분을 지우고 실행해보니 팝업창이 잘 뜹니다
하지만 cf_info에 데이터가 들어 있어서 이것을 저경로를 통해 보내야 하는데
어떻게 해야 보낼수 있죠? javacript 코드 var cf_info = new Object(); cf_info["cf_pk"] = cf_pk; cf_info["cf_tax_date"] = $('#tax_info td').eq(2).text(); cf_info["cf_tax_name"] = $('#tax_info td').eq(4).text(); cf_info["cf_tax_bh"] = $('#tax_info td').eq(6).text(); cf_info["cf_tax_re"] = $('#tax_info td').eq(8).text(); cf_info["cf_tax_email"] = $('#tax_info td').eq(11).text(); cf_info["cf_team"] = $('#tax_info td').eq(13).text(); cf_info["cf_tax_rename"] = $('#tax_info td').eq(15).text(); cf_info["cf_tax_cf"] = $('#tax_info input[name="cf_tax_cf"]').val(); cf_info["cf_tax_memo"] = $('#tax_info td').eq(20).text(); console.log(cf_info); var cf_pk=global_cfpk; alert(cf_pk); var popUrl ="http://localhost/jds/index.php/gigwan_c/tax_mopopup/"+cf_info; //cf_info 포함시 오류발생가 발생하네요 ㅜㅜ var popoption = "width=780, height=520, resizable=no, scrollbars=no, status=no;"; window.open(popUrl,"",popoption);
|
|||
다음글 | 초보 (2) | ||
이전글 | 안녕하세요 ciboard로 공부 중인 사람입니다. (2) | ||
변종원(웅파)
/
2016/08/30 09:37:01 /
추천
0
|
정수리
/
2016/08/30 13:45:39 /
추천
0
@변종원(웅파) 답변 정말감사합니다. 달아주신 답변을 참고하여 json.stringify()함수를 사용하여 배열은 json문자열로 만들어 준후 encodeURI()함수로 인코딩 해준 후 url 뒤에 붙인 뒤 실행을 해도 The URI you submitted has disallowed characters. 이 오류는 똑같이 발생하네요 ;; url 은 http:/xxx.xx.xx.x/jds/index.php/gigwan_c/tax_mopopup/%7B%22cf_pk%22:%2213%22,%22cf_tax_date%22:%222016-08-01%22,%22cf_tax_name%22:%22%EC%A0%95%EC%83%81%ED%9B%88%22,%22cf_tax_bh%22:%222016-08-02%22,%22cf_tax_re%22:%221%22,%22cf_tax_email%22:%22gnsdl106@naver.com%22,%22cf_team%22:%22%EC%9B%B9%ED%8C%80%22,%22cf_tax_rename%22:%22%EA%B0%9C%EB%B0%9C%22,%22cf_tax_cf%22:%220%22,%22cf_tax_memo%22:%22%22%7D 이렇게 들어가구요 ㅜㅜ 복사해서 붙이니 저렇게 표현되네요;; 해당창에서 URL을 봤을때 URL뒤에 JSON 문자열이 그대로 붙어있더라구요 말씀하신대로의 절차를 거쳐서 넘긴것인데 어느시점에서 문제 인건지.. var cf_info = { cf_pk: cf_pk, cf_tax_date: $('#tax_info td').eq(2).text(), cf_tax_name: $('#tax_info td').eq(4).text(), cf_tax_bh: $('#tax_info td').eq(6).text(), cf_tax_re: $('#tax_info td').eq(8).text(), cf_tax_email: $('#tax_info td').eq(11).text(), cf_team: $('#tax_info td').eq(13).text(), cf_tax_rename: $('#tax_info td').eq(15).text(), cf_tax_cf : $('#tax_info input[name="cf_tax_cf"]').val(), cf_tax_memo: $('#tax_info td').eq(20).text() }; var cf_info= JSON.stringify(cf_info); alert(cf_info); cf_info = encodeURI(cf_info); var popUrl ="http://172.19.93.9/jds/index.php/gigwan_c/tax_mopopup/"+cf_info; var popoption = "width=780, height=520, resizable=no, scrollbars=no, status=no;"; window.open(popUrl,"",popoption); |
정수리
/
2016/08/30 13:59:46 /
추천
0
자체 해결하였습니다
url뒤에 ?date="+cf_info를 한후 보내준 뒤 php에서 urldecode(), json_decode를 사용하여 해결하였습니다 답변달아주신 웅파님 감사합니다. 오늘도 새로운것을 배우네요^^ |
php건 자바스크립트건 배열을 스트링으로 표현하려면 어떻게 해야할까요?
json 같은 스트링 형태로 변경하고 주소에서 사용할 수 있도록 url_encode 해줘야 합니다.