개발 Q&A

제목 자바스크립트 배열 형태로 AJAX 형태로 PHP 서버에 넘기면 값은 전달되는데 이상한 문자가 추가되어 가네요 ㅠ,ㅠ
글쓴이 amkorjavas 작성시각 2016/06/05 15:16:40
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 11720   RSS
<javascript>
var field_setting_val = [333, 4444];
$.post('/field_setting_val/'+encodeURIComponent(field_setting_val), function(datas) {
},"json");

<php>
 $field_setting_val   	     = get_seg("field_setting_val");

var_dump($field_setting_val); //  "333%2C4444" 이렇게 %2C 중간에 추가 되면서 출력됩니다 ㅠ,ㅠ

 

 

 

 

확인해보시면 %2C 배열값 사이에 이렇게 문장 추가 되면서 출력되는데요.

 

이것을 방지 할려면 어떻게 해야되나요? ㅠ,ㅠ

 다음글 ci file (4)
 이전글 php,스크립트 고수님들 도와주세요!! (6)

댓글

배강민 / 2016/06/05 16:02:08 / 추천 0

기본적으로 javascrip에서 encodeURIComponent 안에 배열을 넣으면 공백으로 배열을 하나의 스트링으로 만드는듯합니다.

field_setting_val 를 배열로 받고 싶으신듯한데

방법이 있는지는 모르겠으나 그러면 segment로는 애매할듯하네요.

/field_setting_val[]/333/field_setting_val[]/444 이것도 안될듯하고,

/field_setting_val/333/444 로 넘기게해서 받아야하는데, 이러면 배열수가 얼마인지 모르고, 배열 뒤의 인자의 세크먼트를 잡기 어려울테고,

한다면 /field_setting_val/333,444 로 넘겨서 구분자로 쪼개서 사용하던가가 차라리 낫겠고,

json으로 encode해서 넘겨서 JSON.stringify([333,444]) 으로 넘기면, /field_setting_val/[333,444] 가 넘어갈테니 json_decode 해서 사용하던가,

그냥 고전적으로

?field_setting_val[]=333&field_setting_val[]=444 로 넘어가게 하는게 좋지 않을까싶네요.

 

kaido / 2016/06/07 09:42:53 / 추천 1

encode 를 하셨으면 decode도 하셔야...?

 $field_setting_val =  urldecode($field_setting_val);
var_dump( $field_setting_val);