将一个简单的javascript变量传递给php文件

时间:2015-09-23 07:29:49

标签: javascript php json ajax laravel-5

我想将一个简单的javascript变量传递给另一个php文件,该文件是laravel中的控制器文件。

例如:下面是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>

由于纬度和经度不是表单值,那么我应该如何在名为PagesController.php的laravel的控制器文件中捕获这些值。

2 个答案:

答案 0 :(得分:0)

您可以尝试这种方法

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

和PagesController.php

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

答案 1 :(得分:0)

表单值提交只需通过http请求发送格式化数据。您也可以使用javascript(jQuery使其更容易)。

设置将接受服务器上的变量的php文件。 php文件看起来应该是这样的:

文件:calculations.php(您可以随意命名)

<?php

$dataString = $_POST['dataString'];

// your calculations here

echo $result;

?>

然后使用jQuery对您的php文件发出ajax请求并将该变量传递给您的php文件。

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

计算完成后,将执行存储在success字段中的函数,并且您在php文件中回显的任何内容都将存储在您的javascript中的result变量中。 / p>

进一步阅读:jQuery Ajax