2011-04-26 3 views
9

나는 아주 간단한 작업을 시도하고 있지만 해결책을 찾을 수없는 것 같습니다. jQuery의 .ajax 함수를 사용하여 PHP 페이지에 다차원 배열을 게시하고 싶지만 배열을 제대로 직렬화 할 수 없습니다.jquery ajax를 사용하여 배열을 게시하십시오.

var dataToSend = new Array(); 
    dataToSend["page"] = location.href; 
    dataToSend["data"] = new Array(); 
    var dataindex = 0; 
    jQuery(".myclass").each(function(){ 
     dataToSend["data"][dataindex]=new Array(); 
     dataToSend["data"][dataindex]["selector"] = unique_selector(jQuery(this), ""); 
     dataToSend["data"][dataindex]["contents"] = jQuery(dataToSend["data"][dataindex]["selector"]).html(); 
    }); 
    jQuery.ajax({ 
     type: 'POST', 
     url: "/main/save.php", 
     data: JSON.stringify(dataToSend), 
     dataType: "json", 
     success: function(data){alert(data);} 
    }); 

을 다음과 같이

코드는 기본적으로 내가 제대로 dataToSend의 배열을 전달하는 방법을 잘 모르겠습니다입니다. 배열이 모든 종류의 좋은 물건들로 가득 차있다 할지라도 지금 방화범이 끌려 게시물을 비어있는 것으로 보입니다. PHP는 도움말 페이지에서 촬영

감사합니다,

다니엘

답변

11

,하지만 당신은 new Object()로를 사용 : OU는과 같이 각각의 요소에 액세스 할 수 있습니다. 객체를 사용해보십시오.

이 시도 :

var dataToSend = { 
    page: location.href, 
    data: [] 
}; 
var dataindex = 0; 
jQuery(".myclass").each(function(){ 
    var temp = unique_selector(jQuery(this), ""); 
    dataToSend.data[dataindex++] = { 
     selector: temp, 
     contents: jQuery(temp).html() 
    }; 
}); 
jQuery.ajax({ 
    type: 'POST', 
    url: "/main/save.php", 
    data: JSON.stringify(dataToSend), 
    dataType: "json", 
    success: function(data){ alert(data); } 
}); 
+0

배열에 대해 JSON.stringify에 해당하지 않습니다. 어쨌든 그게 지금 PHP 측면을 해결하기 위해 노력했습니다. 고맙습니다. – Daniel

+0

@mkeats. 걱정 마. @ 대니얼. 배열은 정수 인덱스 목록입니다. 객체는 핵심 색인 목록입니다. JSON은 완벽한 자바 스크립트 변수가 필요하거나 변환되지 않습니다. – jerone

+0

@Daniel, JSON.stringify ([{name : 'Dude'}, {name : 'Guy', phone : 234556}]) 결과는 "[{{"name ":"Dude "}, {"name ":" Guy ","phone ": 234556}]" –

0

:

당신이 폼 입력에 다차원 배열을 가질 수있다

HTML 예 :

<input name="data[User][firstname]" type="text" /> 
<input name="data[User][lastname]" type="text" /> 
... 

PHP 내부 스크립트 제출 후 당신은 new Array();를 정의하고

$firstname = $_POST['data']['User']['firstname']; 
... 
+0

그래, 난이 옵션을 보았다,하지만 난 아니다 양식의 내용 게시. 내가 조립 한 자바 스크립트 배열입니다. 배열을 json 문자열로 변환하는 방법이 필요합니다. – Daniel

+0

자바 스크립트 배열을 Json 문자열로 변환 하시겠습니까? – slandau

0

사용

data: { '': dataToSend } 

나는 비슷한 시나리오에서이 사용하고 마법처럼 일했다 ...

관련 문제