2015-02-05 5 views
0

개체라는 변수에 항목이 저장되어 있습니다.

0: Object 
    name: "Jim" 
     age: "42" 
1: Object 
    name: "Bill" 
     age: "50" 

$.post("mypage.php", items, function(data) 

내가 PHP 페이지에서 빈 포스트 변수를 가져올 게시하려고 할 때,하지만이 포스트 변수 내가 잘못 뭐하는 거지

$.post("mypage.php", "name=jim", function(data) 

을 반환? 내가

$.post("mypage", items[0], function(data) { 
를 전달하면 나는 결과 만

$ .post ("마이 페이지"를 얻을 수 있도록

편집 그것은, 항목, 기능 (데이터) { 객체의 배열입니다

에서 print_r 당신은 jQuery를의 호기심 동작을 사용하는

+0

* 실제 * 객체의 코드를 게시 할 수 있습니까? 또한, 단지 'jQuery 객체'와 같은 것은 존재하지 않습니다. 단지 객체 일뿐입니다. –

+0

브라우저의 개발자 도구를 살펴보십시오. Net 탭을보십시오. 요청이 만들어진 것입니까? 응답이 있습니까? 데이터에 예상되는 데이터가 포함되어 있습니까? JSON.stringify에 – Quentin

+0

을 검색하십시오! –

답변

0

그것은이 형식의 배열 될 수있다 게시하는 객체처럼 보인다.

items = { 
    people: [ 
     { 
      name: "Jim", 
      age: "42" 
     }, 
     { 
      name: "Bill", 
      age: "50" 
     } 
    ] 
}; 

는 그런 다음 $_POST['people']을 통해 데이터를 액세스 할 수 있어야합니다 : 당신은 아마 형식 뭔가를 게시 할.

UPDATE

정확하려면, 당신은 잘 당신의 배열을 게시 할 수 있습니다, 그것은이 게시물에 거의 반드시 원하지 무엇을 Jim=&Bill=

를 생성합니다. 그러나 jQuery.param으로 지정된 구문을 따르면 배열이 올바르게 처리됩니다.이름 및 값이있는 객체 배열 및 배열이어야합니다.

items = [ 
    { 
     name: "Jim", 
     value: "42" 
    }, 
    { 
     name: "Bill", 
     value: "50" 
    } 
] 
+0

이게 옳은 것 같고 올바른 것으로 표시 하겠지만 $ .ajax를 아무런 문제없이 사용하게되었습니다. Ross – LeBlaireau

+0

실제로 키가 이름/값 쌍으로 보존되지 않은 경우에도 jQuery는 배열을 허용합니다. – adeneo

+0

jQuery는 배열을 처리 할 수 ​​있지만 OP가 예상하는대로 동작하지 않습니다. –

0

비어 있습니다. 그것은 foun입니다 d를 사용하여 데이터에서 AJAX 쿼리를 준비하는 배후에서 사용되는 $.param 함수에 있습니다.

배열을 보내면 jQuery가 배열을 객체의 배열로 기대하며 각 객체에는 namevalue의 두 키가 있습니다. 분명히 그 구조에 데이터를 제공하지 않습니다. 당신이 PHP에서 print_r($_POST['Jim']);을 할 경우

Jim=undefined&Bill=undefined 

, 당신은 문자열 undefined을 얻을 것이다 : 당신의 스크립트는 실제로 다음과 같습니다 데이터를 전송합니다.

분명히 이것을 원하지 않습니다. 객체 내에서 배열을 전송해야합니다. 데이터가이로 연재됩니다

{ 
    people: [ 
    { 
     name: 'Jim', 
     age: 42 
    }, 
    { 
     name: 'Bill', 
     age: '50' 
    } 
    ] 
} 

이 방법 : 당신이 print_r($_POST['people']);을 할 경우

people[0][name]=Jim&people[0][value]=42&people[1][name]=Bill&people[1][age]=50 

, 당신은 의미있는 결과를 얻을 것이다.

items = [ 
    { 
     name: "Jim", 
     age: "42" 
    }, 
    { 
     name: "Bill", 
     age: "50" 
    } 
] 

docs는 일반 개체를 전달해야 함을 시사한다 :

관련 문제