2015-09-23 27 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