我想将一个简单的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的控制器文件中捕获这些值。
答案 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