2014-07-15 130 views
0

我正在使用google maps API進行一些距離計算,並希望將數組從JS傳遞到完全不同的PHP頁面。我以爲我做的是正確的,通過輸出一個json字符串到頁面output.php JS的html正文,然後在另一頁的PHP頁面(retrieve.php)使用cURL來獲取頁面內容。但是,它檢索HTML頁面的全部內容,包括javascript,html標籤等。我只想從JS生成的頁面中檢索json字符串,並在不同的頁面上使用PHP中的json。什麼是最好的方法來做到這一點?將json從javascript傳遞到PHP

感謝

js代碼試圖輸出JSON:

<!DOCTYPE html> 
<html> 
    <head> 
     <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" ></script> 
     <script type="text/javascript"> 

      window.onload = function() { 
       var myObj = { 
        1: 1, 
        2: 2, 
        3: 4, 
        4: 3 
       }; 
       document.body.innerHTML = JSON.stringify(myObj); 
      } 

     </script> 

    </head> 
    <body> 
    </body> 
</html> 

PHP文件:

$curl_handle=curl_init(); 
curl_setopt($curl_handle,CURLOPT_URL,'http://localhost:81/output.php'); 
curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);                 
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, true);                  
curl_setopt($curl_handle, CURLOPT_HTTPHEADER, array(                   
    'Content-Type: application/json')                  
);  
$content = curl_exec($curl_handle); 
curl_close($curl_handle); 

$array = json_decode($content); 
print_r($array); 
+0

我們可以看到你的代碼 – Satya

回答

0

的JavaScript,在客戶端上運行,則不會是能夠輸出數據到頁面不同的請求爲頁面將能夠閱讀。它只能修改頁面的內存拷貝

將數據序列化爲查詢字符串,然後轉到另一個PHP頁面location = other_php_url + query_string,然後從$_GET讀取數據,而不是使用cURL

0

試着用Ajax調用,如下所示(這是使用jQuery):

my_json_data = {"my_data": "blabla"}; 
$.ajax({ 
    url: 'http://www.mywebsite.com/my_php_script.php', 
    type: "POST", 
    data: my_json_data, 
    success:function(data){ 
    alert("Data received"); 
    } 
}); 

在PHP端你應該做這樣的事情:

<?php //This is my_php_script.php 

$my_data = $_POST["my_data"]; 

... 
+0

這不僅僅是從一個PHP文件轉換成JS的JSON?我正在尋找從JS獲取JSON到PHP文件。 –

+0

不,這是相反的...它通過ajax調用將json發送到一個php腳本...試試看! – clami219