복붙노트

[JQUERY] 패스 자바 스크립트 배열 -> PHP

JQUERY

패스 자바 스크립트 배열 -> PHP

해결법


  1. 1.당신은 자바 스크립트에서 배열을 인코딩하는 JSON.stringify (배열)을 사용하고 $ 배열 = json_decode를 사용할 수 있습니다 ($ _ POST [ 'jsondata']); 당신의 PHP 스크립트에서 검색 할 수 있습니다.

    당신은 자바 스크립트에서 배열을 인코딩하는 JSON.stringify (배열)을 사용하고 $ 배열 = json_decode를 사용할 수 있습니다 ($ _ POST [ 'jsondata']); 당신의 PHP 스크립트에서 검색 할 수 있습니다.


  2. 2.AJAX 요청은
    요소를 통해 시작 GET 및 POST 요청에서 다르지 않습니다. 어떤 사용자가 데이터를 검색 할 수 $ _GET과 $ _POST를 사용할 수 있다는 것을 의미합니다.

    AJAX 요청은 요소를 통해 시작 GET 및 POST 요청에서 다르지 않습니다. 어떤 사용자가 데이터를 검색 할 수 $ _GET과 $ _POST를 사용할 수 있다는 것을 의미합니다.

    당신은 AJAX 요청 (jQuery를 예를) 만들 때 :

    // JavaScript file
    
    elements = [1, 2, 9, 15].join(',')
    $.post('/test.php', {elements: elements})
    

    그것은이 양식을 게시에 (거의) 상당이다 :

    <form action="/test.php" method="post">
      <input type="text" name="elements" value="1,2,9,15">
    </form>
    

    두 경우 모두, 서버 측에서 당신은 $ _POST 변수에서 데이터를 읽을 수 있습니다 :

    // test.php file
    
    $elements = $_POST['elements'];
    $elements = explode(',', $elements);
    

    간단히하기 위해 여기 쉼표 요소를 결합하고있다. JSON 직렬화하지만, 좀 더 보편적 인 솔루션입니다.


  3. 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. 4.그래서 배열의 2 차원 배열을 구축하고, 하나 개의 요청에 PHP에 전체 일을 보낼 수있는 클라이언트 측 루프를 사용합니다.

    그래서 배열의 2 차원 배열을 구축하고, 하나 개의 요청에 PHP에 전체 일을 보낼 수있는 클라이언트 측 루프를 사용합니다.

    서버 측, 각 하위 배열에 대한 정기 삽입 / 업데이트를 수행 또 다른 루프를해야합니다.


  5. 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);
    
    ?>
    
  6. from https://stackoverflow.com/questions/5035547/pass-javascript-array-php by cc-by-sa and MIT license