2012-05-03 3 views
3

어떻게 데이터 (연관 배열)를 PHP 파일에 전달할 수 있습니까?ajax에서 자바 스크립트 연관 배열을 PHP 파일로 전달하는 방법

function ajax(url,data,callback) 
     { 
      var xmlhttp; 
      if (window.XMLHttpRequest) 
      {// code for IE7+, Firefox, Chrome, Opera, Safari 
      xmlhttp=new XMLHttpRequest(); 
      } 
      else 
      {// code for IE6, IE5 
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
      xmlhttp.onreadystatechange=function() 
      { 
       xmlhttp.onreadystatechange = function() { 
        if (xmlhttp.readyState === 4) { 
         callback(xmlhttp.responseText); 
        } 
       } 
      } 
      xmlhttp.open("POST",url,true); 
      xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
      xmlhttp.send(data); 
     } 
+3

[JSON] (http://www.json.org/js.html) –

+1

json_encode 및 [json_decode] (http://www.php.net/manual/en/function.json-decode.php) 당신의 친구입니다 – Anigel

+1

그리고 jQuery를 사용하십시오,이 코드는 stoneage처럼 보입니다 ... –

답변

0

PHP의 JSON functions을 사용하여이를 수행 할 수 있습니다. 배열을 자바 스크립트가 처리 할 수있는 표기법으로 인코딩/디코딩합니다.

+0

그 유일한 방법은 무엇입니까 ?? – leo0110

+4

아니요, ** 유일한 ** 제정신 ** 방식입니다. –

+0

serialize() 및 unserialize()를 사용할 수 있지만 어딘가에서 오류가 발생할 수 있습니다. JSON은 여러분이 원하는 것을하기 위해 만들어졌습니다. – romo

6

나는 이것을 읽고, 당신은 자바 스크립트에있다. 그리고 당신은 자바 스크립트 객체 (자바 스크립트는 연관 배열, 배열과 객체를 가지고 있지 않다)를 가지고있다. 그래서, 당신이 가지고있는 데이터가 무엇이든 그것을 문자열로 바꾸고 POST 나 GET을 통해 PHP 스크립트로 보내야합니다. 귀하의 페이지에 JSON.stringify이 있는지 확인하기 위해 polyfill로 JSON3을 (를) 포함하여 권유드립니다 (크로스 브라우저 성).

var data = { 
    someData: 'data', 
    moreData: [ 
     'blah', 
     'bleh' 
    ] 
}; 

var stringData = JSON.stringify(data); 

// using jquery ajax for brevity (http://api.jquery.com/jQuery.ajax/) 
$.ajax({ 
    type: "POST", 
    url: "your-php-script.php", 
    data: { data: stringData } 
}); 

는 이제 PHP 스크립트는 해당 문자열을하다가 수 있으며, JSON 자체에 다시 전원을 켜십시오 :

<?php 
    $dataString = $_POST['data']; 
    $data = json_decode($dataString); 

는 희망이 당신이 찾고 있던 무엇 코드는 다음과 같이 될 것입니다. 건배!

관련 문제