2015-09-23 26 views
-4

我想將簡單的javascript變量傳遞給另一個php文件,該文件是laravel中的控制器文件。將簡單的javascript變量傳遞給php文件

例如:下面是laravel的我的blade.php文件中的代碼。

<script> 
    function getLocation() { 

     if (navigator.geolocation) { 
      navigator.geolocation.getCurrentPosition(showPosition); 
     } else { 
      alert('Geolocation is not supported by this browser.'); 
     } 
    } 

    function showPosition(position) { 
     var latitude = position.coords.latitude; 
     var longitude =position.coords.longitude; 

     var dataString = 'latitude'+latitude+'longitude'+longitude; 

     $.ajax({ 
      type: "POST", 
      url: "PagesController.php", 
      data: dataString 
     }); 
    } 
    getLocation(); 
</script> 

由於緯度和經度沒有形成價值觀那我應該怎麼在名爲laravel的PagesController.php控制器文件捕獲這些值。

+2

是的,可以用AJAX/Json完成。 – Epodax

+0

數據:{「Data」:dataString}應該是語法,而不是簡單地使用$ _POST ['Data']在目標頁面上訪問它。 – Crecket

回答

0

你可以試試這個方法

$.ajax({ 
    type: "POST", 
    url: "PagesController.php", 
    data: {latitude: latitude, longitude: longitude}, 
}); 

和PagesController.php

$latitude = $_REQUEST['latitude']; 
$longitude = $_REQUEST['longitude']; 
+0

它向我顯示錯誤消息爲'未定義的索引經度和緯度'。 – Amarja

+0

@Amarja嘗試在發送給ajax以測試其值是否爲 – LeViNcE

+0

之前嘗試提醒經緯度的值。是的,我嘗試過,它有值。 – Amarja

0

表單提交值只需通過一個HTTP請求發送格式的數據。你也可以使用javascript來做到這一點(jQuery使它更容易)。

設置將接受服務器上變量的php文件。 PHP文件應該是這個樣子:

文件:calculations.php(你可以命名爲任何你想要的)

<?php 

$dataString = $_POST['dataString']; 

// your calculations here 

echo $result; 

?> 

然後使用jQuery做一個Ajax請求你的PHP文件和變量傳遞給你的PHP文件。

$.ajax({url: 'calculations.php', data:{dataString:dataString} type:'POST', success: function(result){ 
    console.log(result); // will output the $result 
}}); 

的計算完成存儲在success領域的功能將被執行後,不管你在php文件echo'ed出將被存儲在您的JavaScript的result變量。

延伸閱讀:jQuery Ajax