728x90
제이쿼리에서 ajax 를 사용하다 문제가 생겨서 블로그를 남깁…읍…..니다.
예시를 보시면 빠른이해가 되실거에요.
1. 배열 넘기기
단순 배열은 그냥 넘기면 됩니다.
javascript
> array
var dataArr = new Array();
dataArr[ 0 ] = 'A';
dataArr[ 1 ] = 'B';
dataArr[ 2 ] = 'C';
$.ajax({
type : 'POST',
url : '/test',
cache : false,
data : { dataArr: dataArr },
success : function( data ){
console.log( data );
},
error : function( jqxhr , status , error ){
// console.log( jqxhr , status , error );
}
});
php
<?php
$dataArr = $_POST['dataArr'];
print_r( $dataArr );
> Array
(
[0] => 'A'
[1] => 'B'
[2] => 'C'
)
echo dataArr[ 0 ];
> A
?>
2. 배열 넘기기 ??
문제는 여기 있습니다 ..
1번에서 $_POST['dataArr'] 로 배열을 받고있는데요 ,
아래 배열을 사용하면 넘어오지 않습니다.
원래 간단한 내용일 수 있는데요, js 의 부족한 지식과 PHP 가 만나니 이렇게 되었네요 …
javascript
> array
var dataArr = new Array();
dataArr['name'] = 'Ari';
dataArr['email'] = 'ari@email.com';
dataArr['phone'] = '010-1234-5678';
$.ajax({
type : 'POST',
url : '/test',
cache : false,
data : { dataArr: dataArr },
success : function( data ){
console.log( data );
},
error : function( jqxhr , status , error ){
// console.log( jqxhr , status , error );
}
});
php
<?php
$dataArr = $_POST['dataArr'];
print_r( $dataArr );
?>
> error ...
<br />
<b>Notice</b>: Undefined index: dataArr in <b>/test.php</b> on line <b>2</b><br />
3. key, value 형태의 배열
달라진 점
new Object(); 로 선언
JSON.stringify( dataObject ); // object를 string형태로 변환
$dataObject->name; 형태로 출력
javascript
> array
var dataObject = new Object();
dataObject['name'] = 'ari';
dataObject['email'] = 'ari@email.com';
dataObject['phone'] = '010-1234-5678';
dataObject = JSON.stringify( dataObject );
$.ajax({
type : 'POST',
url : '/test',
cache : false,
data : { dataObject: dataObject },
success : function( data ){
console.log( data );
},
error : function( jqxhr , status , error ){
// console.log( jqxhr , status , error );
}
});
php
<?php
$dataObject = json_decode( $_POST['dataObject'] );
print_r( $dataObject );
> stdClass Object
(
[name] => ari
[email] => ari@email.com
[phone] => 010-1234-5678
)
echo $dataObject->name;
> ari
?>
출처 : https://blog.devari.kr/2017/php/php-js-ajax-array-object