복붙노트

[JQUERY] PHP 스크립트에 Ajax를 배열 보내기

JQUERY

PHP 스크립트에 Ajax를 배열 보내기

해결법


  1. 1.JSON으로 데이터 문자열을 인코딩합니다.

    JSON으로 데이터 문자열을 인코딩합니다.

    dataString = ??? ; // array?
    var jsonString = JSON.stringify(dataString);
       $.ajax({
            type: "POST",
            url: "script.php",
            data: {data : jsonString}, 
            cache: false,
    
            success: function(){
                alert("OK");
            }
        });
    

    당신의 PHP에서

    $data = json_decode(stripslashes($_POST['data']));
    
      // here i would like use foreach:
    
      foreach($data as $d){
         echo $d;
      }
    

    노트

    당신이 POST를 통해 데이터를 보낼 때, 그것은 키 값 쌍으로 할 필요가있다.

    그러므로

    데이터 : dataString

    잘못된 것입니다. 대신 수행

    데이터 : {데이터 : dataString}


  2. 2.

     dataString = [];
       $.ajax({
            type: "POST",
            url: "script.php",
            data:{data: $(dataString).serializeArray()}, 
            cache: false,
    
            success: function(){
                alert("OK");
            }
        });
    

    http://api.jquery.com/serializeArray/


  3. 3.의 jQuery AJAX 데이터는 () 함수는 입력으로 익명 객체를 받아 문서를 참조. 무엇 당신이 찾고있는의 예를 따라서 :

    의 jQuery AJAX 데이터는 () 함수는 입력으로 익명 객체를 받아 문서를 참조. 무엇 당신이 찾고있는의 예를 따라서 :

    dataString = {key: 'val', key2: 'val2'};
    $.ajax({
            type: "POST",
            url: "script.php",
            data: dataString, 
            cache: false,
    
            success: function(){
                alert("OK");
            }
        });
    

    또한 키 = 발 & 키 2 = val2만큼처럼, 자신에 POST / GET 쿼리를 작성 할 수 있습니다,하지만 당신은 비실용적 인 자신을 이스케이프 처리해야 할 것이다.


  4. 4.데이터 문자열은 데이터가 문자열 형식 (그리고 어쩌면 문자로 구분)한다 제안한다.

    데이터 문자열은 데이터가 문자열 형식 (그리고 어쩌면 문자로 구분)한다 제안한다.

    $data = explode(",", $_POST['data']);
    foreach($data as $d){
         echo $d;
    }
    

    데이터 문자열은 문자열이 아니라 사실 배열 (귀하의 질문에 나타내는 것) JSON을 사용하는 경우.


  5. 5.값을 구분하여이 일 개 dimentional 배열을 보내려고되었으며, JQuery와 쉼표로 변환 된 경우> :( 다음 ** 모든 쉼표 황소를 분리 아래 코드와 실제 배열은 PHP로 제출되지는 않습니다를 따르십시오.

    값을 구분하여이 일 개 dimentional 배열을 보내려고되었으며, JQuery와 쉼표로 변환 된 경우> :( 다음 ** 모든 쉼표 황소를 분리 아래 코드와 실제 배열은 PHP로 제출되지는 않습니다를 따르십시오.

    단일 차원 배열을 이름 myvals을 첨부해야 말.

    jQuery('#someform').on('submit', function (e) {
        e.preventDefault();
        var data = $(this).serializeArray();
    
        var myvals = [21, 52, 13, 24, 75]; // This array could come from anywhere you choose 
        for (i = 0; i < myvals.length; i++) {
            data.push({
                name: "myvals[]", // These blank empty brackets are imp!
                value: myvals[i]
            });
        }
    
    jQuery.ajax({
        type: "post",
        url: jQuery(this).attr('action'),
        dataType: "json",
        data: data, // You have to just pass our data variable plain and simple no Rube Goldberg sh*t.
        success: function (r) {
    ...
    

    이제 PHP 내부에서이 작업을 수행 할 때

    print_r($_POST);
    

    당신은 얻을 것이다 ..

    Array
    (
        [someinputinsidetheform] => 023
        [anotherforminput] => 111
        [myvals] => Array
            (
                [0] => 21
                [1] => 52
                [2] => 13
                [3] => 24
                [4] => 75
            )
    )
    

    나의 언어를 용서하지만, 거기에 루브 - 골드버그 솔루션의 지옥이 많이있는 모든 웹을 통해 특별히 SO에 흩어져 있지만, 그들 중 누구도 우아하거나 실제로 PHP를 통해 아약스 게시물에 한 차원 배열을 게시하는 문제를 해결한다. 이 솔루션을 확산하는 것을 잊지 마십시오.

  6. from https://stackoverflow.com/questions/9001526/send-array-with-ajax-to-php-script by cc-by-sa and MIT license