2013-08-19 2 views
0

사용자가 선택한 값을 기반으로 JSON 배열을 생성하는 스크립트가 있습니다. 이 값은 AJAX가있는 JSON으로이 값을 받아 처리하는 PHP 스크립트로 보내집니다.AJAX로 데이터를 보내고 PHP로 수신

무엇이 잘못 될 수 있습니까?

JSON (즉 보낼)

[{ 
    "Pages": 
     {"name":" Page Name 1", 
      "id":"252456436636644"} 
     }, 
    { 
    "Pages":{ 
      "name":" Page Name 2", 
      "id":"345345435435232" 
      } 
}] 

JQUERY :

var json_pages = JSON.stringify(publish); 

$.ajax({ 
    url: "post.php", 
    type: "post", 
    data: { PublishToPages: json_pages }, 
    success: function(){}, 
    error: function(){} 
}); 

문제점 I은 PHP로부터 받으시는 JSON 데이터를 받고 있지 않은 것을,

if($_POST['PublishToPages']) { 

    $json = $_POST['PublishToPages']; 

    $array = json_decode($json, true); 

    foreach($array as $item) { 
     $page_id = $item['Pages']['id']; 
     echo $page_id; 
    } 
} 

수동으로 JSON을 PHP 스크립트에 넣으면 작동합니다.

if ($_POST['PublishToPages']) { 

    $json = '[{"Pages":{"name":" Page Name","id":"234545355345435"}},{"Pages":{"name":" Page Name 2","id":"345345435435435435"}}]'; 

    $array = json_decode($json, true); 

    foreach($array as $item) { 
    $page_id = $item['Pages']['id']; 
     echo $page_id; 
    } 
} 
+0

$ array의 내용을 확인 했습니까? – Callombert

+3

ajax에이 데이터 유형 "json"을 추가 한 후 시도하십시오. –

+0

"var.json_pages = JSON.stringify (publish);"줄 다음에 "console.log (publish)"를 실행하면 " 그 결과는 무엇입니까? 그리고 http 요청은 당신에게 무엇을 보여 줍니까? 데이터가 서버로 전송됩니까? – Jurik

답변

0

이를 사용해보십시오 :

if($_POST['PublishToPages']) { 

    $json = $_POST['PublishToPages']; 
    $items = array(); 

    $array = json_decode($json, true); 

    foreach($array as $item) { 
     $page_id = $item['Pages']['id']; 
     $items[] = $page_id; 
    } 

    echo json_encode($items); 
} 
0

는 모든 입력이

$.ajax({ 
    url: "post.php", 
    type: "post", 
    dataType:"json", 
    data: { PublishToPages: json_pages }, 
    success: function(){}, 
    error: function(){} 
}); 
0

감사를보십시오! var_dump를 사용하여 알아 냈고 인코딩 오류가 발생하여 stripslashes()가 추가되었습니다. 그리고 효과가있었습니다! :)

if ($_POST['PublishToPages']) { 

    $json = stripslashes($_POST['PublishToPages']); 

    $array = json_decode($json, true); 

    foreach($array as $item) { 
     $page_id = $item['Pages']['id']; 
     echo $page_id; 
    } 
} 
관련 문제