[JQUERY] 패스 자바 스크립트 배열 -> PHP
JQUERY패스 자바 스크립트 배열 -> PHP
해결법
-
1.당신은 자바 스크립트에서 배열을 인코딩하는 JSON.stringify (배열)을 사용하고 $ 배열 = json_decode를 사용할 수 있습니다 ($ _ POST [ 'jsondata']); 당신의 PHP 스크립트에서 검색 할 수 있습니다.
당신은 자바 스크립트에서 배열을 인코딩하는 JSON.stringify (배열)을 사용하고 $ 배열 = json_decode를 사용할 수 있습니다 ($ _ POST [ 'jsondata']); 당신의 PHP 스크립트에서 검색 할 수 있습니다.
-
2.AJAX 요청은
-
3.다음은 HTTP GET 요청 매개 변수로 전송하는 PHP 호환 배열로 변환 JS 배열 또는 객체에 대한 기능이다 :
다음은 HTTP GET 요청 매개 변수로 전송하는 PHP 호환 배열로 변환 JS 배열 또는 객체에 대한 기능이다 :
function obj2url(prefix, obj) { var args=new Array(); if(typeof(obj) == 'object'){ for(var i in obj) args[args.length]=any2url(prefix+'['+encodeURIComponent(i)+']', obj[i]); } else args[args.length]=prefix+'='+encodeURIComponent(obj); return args.join('&'); }
접두사는 매개 변수의 이름입니다.
편집하다:
var a = { one: two, three: four }; alert('/script.php?'+obj2url('a', a));
생산 예정
/script.php?a[one]=two&a[three]=four
당신이 script.php의 배열로 $ _GET을 [ 'A']를 사용 할 수있다. 당신은 JS에서이 script.php를 호출하는 URL을 공급에 좋아하는 아약스 엔진에 당신의 방법을 파악해야합니다.
-
4.그래서 배열의 2 차원 배열을 구축하고, 하나 개의 요청에 PHP에 전체 일을 보낼 수있는 클라이언트 측 루프를 사용합니다.
그래서 배열의 2 차원 배열을 구축하고, 하나 개의 요청에 PHP에 전체 일을 보낼 수있는 클라이언트 측 루프를 사용합니다.
서버 측, 각 하위 배열에 대한 정기 삽입 / 업데이트를 수행 또 다른 루프를해야합니다.
-
5.당신은 PHP로 자바 스크립트에서 배열을 전송할 수 있습니다 ...
당신은 PHP로 자바 스크립트에서 배열을 전송할 수 있습니다 ...
자바 스크립트 ... ArraySender.html
<script language="javascript"> //its your javascript, your array can be multidimensional or associative plArray = new Array(); plArray[1] = new Array(); plArray[1][0]='Test 1 Data'; plArray[1][1]= 'Test 1'; plArray[1][2]= new Array(); plArray[1][2][0]='Test 1 Data Dets'; plArray[1][2][1]='Test 1 Data Info'; plArray[2] = new Array(); plArray[2][0]='Test 2 Data'; plArray[2][1]= 'Test 2'; plArray[3] = new Array(); plArray[3][0]='Test 3 Data'; plArray[3][1]= 'Test 3'; plArray[4] = new Array(); plArray[4][0]='Test 4 Data'; plArray[4][1]= 'Test 4'; plArray[5] = new Array(); plArray[5]["Data"]='Test 5 Data'; plArray[5]["1sss"]= 'Test 5'; function convertJsArr2Php(JsArr){ var Php = ''; if (Array.isArray(JsArr)){ Php += 'array('; for (var i in JsArr){ Php += '\'' + i + '\' => ' + convertJsArr2Php(JsArr[i]); if (JsArr[i] != JsArr[Object.keys(JsArr)[Object.keys(JsArr).length-1]]){ Php += ', '; } } Php += ')'; return Php; } else{ return '\'' + JsArr + '\''; } } function ajaxPost(str, plArrayC){ var xmlhttp; if (window.XMLHttpRequest){xmlhttp = new XMLHttpRequest();} else{xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");} xmlhttp.open("POST",str,true); xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xmlhttp.send('Array=' + plArrayC); } ajaxPost('ArrayReader.php',convertJsArr2Php(plArray)); </script>
그리고 PHP 코드 ... ArrayReader.php
<?php eval('$plArray = ' . $_POST['Array'] . ';'); print_r($plArray); ?>
from https://stackoverflow.com/questions/5035547/pass-javascript-array-php by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] 있는 jqGrid는 : 사용 안 함 형태의 경우 편집 필드 (0) | 2020.10.11 |
---|---|
[JQUERY] 요소에 텍스트 문자열을 찾아 그 둘레에 약간의 범위 태그를 포장 (0) | 2020.10.11 |
[JQUERY] SCRIPT7002 : XMLHttpRequest의 : 네트워크 오류 0x2ef3는 오류로 인해 00002ef3에 작업을 완료 할 수 없습니다 (0) | 2020.10.11 |
[JQUERY] 여러 자바 스크립트 배열과 일치 찾기 (0) | 2020.10.11 |
[JQUERY] $ (창) .load와 $ (문서) .ready의 차이점은 무엇입니까? (0) | 2020.10.11 |