2011-07-26 4 views
1

그래서 json 파일에 새 노드를 게시하려고합니다. 여기 JSON 파일에 추가 문제가 발생했습니다. 개체 개체 만 나타납니다

내 JS입니다 :

{"markers":[{"id":"1310499027672","lat":"47.1405","long":"7.243839999999977","ip":"127.0.0.1","created":1310499032},"1object Object]","1object Object]","1object Object]","1object Object]","1object Object]","1object Object]","1object Object]","1object Object]"]} 
+0

내가 올린 코드가 저에게 효과적입니다. 오류가 다른 곳에서 발생했을 수 있습니다. –

답변

0

$markerData는 여러분처럼 보인다 : 문제는

$dataPath = 'file_path'; 
$markerDataFile = 'adauga.json'; 
$markerText = file_get_contents($markerDataFile); 
$markerList = json_decode($markerText,true); 
if(!empty($_POST['marker']) ){ 

    $markerData = $_POST['marker']; 
    $markerData['ip'] = $_SERVER['REMOTE_ADDR']; 
    $markerData['created'] = time(); 
    $markerList['markers'][] = $markerData; 
    $markerText = json_encode($markerList); 
    file_put_contents($markerDataFile, $markerText); 
    echo json_encode($markerData); 
}else{ 
    echo "Invalid request"; 

PHP 파일 여기

 var newDate = new Date;    
     var markerId = newDate.getTime(); 
     var markerData = { 'id': markerId, 'lat':markerId, 'long':markerId }; 


     $.ajax({ 
      type: 'POST', 
      url: "dataPath.php", 
      data: { 
        marker: markerData 
       }, 
      dataType: 'json', 
      async: false, 
      success: function(result) 
       { 
        alert("Added OK"); 
       }    
     }); 

하고이 JSON 파일 표시 명시 적으로 읽고 json에 명시 적으로 추가해야하는 추가 중첩 된 객체 이러한 객체의 속성을 대상으로 지정하고 하나씩 추가해야합니다.

$_POST['marker'] 에코한다면 당신은 [object Object]을 얻을 것입니다하지만이처럼 인쇄하는 경우 :

echo "<pre>"; 
print_r($_POST['marker']); 
echo "</pre>"; 

는 그런 다음 마커 객체와의 모든 속성을 볼 수 있습니다 당신이 당신의 JSON으로 또는 개별적으로 추가 할 수 있습니다 for 루프에서 이들을 최소한 참조하십시오.

+0

객체와 중첩 된 배열을 완벽하게 처리 할 수 ​​있다면'json_encode()'. * JavaScript *에서 문자열로 객체를 캐스팅하면'[object Object]'만 얻을 수 있습니다. –