form 에서 json을 이용해 배열 넘기기

쇼핑몰 솔루션에서 선택옵션 관련 부분을 작업 중인데.. 선택한 옵션 정보를 배열로 저장해서 php 파일에

넘겨야 할 필요성이 생기게 됐다. input 에 배열값을 저장해서 넘기게 되면 value,value.. 이런 식의 문자값이

넘어오게 되는데.. 물론 , 구분자로 사용해서 다시 배열을 만들어도 되지만 넘어온 값 중에 , 가 들어간 값이

있다면 원치 않는 결과가 나올 수도 있기 때문에 배열을 그 상태로 넘기고 싶었다.

<form id=”formid” method=”post” action=”formupdate.php”>

<input type=”hidden” name=”arr” value=”” />

……..

</form>

이런 식으로 구성되어 있을 경우 자바스크립트로 배열을 만들고 이걸 json 포맷으로 변경한 후 arr의 값에 저장한다.

<script>

var myObject = new Object();

var arr_val = new Array();

arr_val.push(val1);

arr_val.push(val2);

myObject.value = arr_val;

// json 포맷으로 변환

var values = JSON.stringify(myObject);

$(function() {

    $(‘input[name=arr]’).val(values);

});

</script>

대략 이런 식으로 진행하면 json 포맷의 값을 input 에 저장할 수 있다. JSON.stringify 관련 에러가 발생하면

브라우저에서 json을 지원하지 않는 경우일 수 있으므로 json 관련 파일을 로드해주면 된다.

관련파일 : https://github.com/douglascrockford/JSON-js/blob/master/json2.js

편리

PHP와 MariaDB, jQuery 등을 사용해 게시판, 쇼핑몰 솔루션을 개발합니다. 그누보드5와 영카트5 개발에 참여 했습니다. Linux와 Nginx는 물론 WordPress, Git 등에도 관심이 많습니다. 자전거 타기 및 사진 촬영을 취미로 하고 있습니다.

카카오톡 플러스친구 채팅 : NCUBE.NET

2 thoughts to “form 에서 json을 이용해 배열 넘기기”

  1. 저리 넘기면 arr={“”:”” , “”:””}이런식으로 넘어가는데요.
    혹시 저기 “arr=”없애고 {“”:”” , “”:””}이것만 넘길수잇는 방법은 없나요?

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.