"Converting JavaScript Variables to PHP: JavasScript 變數轉換為PHP"
P粉904405941
P粉904405941 2023-09-18 11:50:08
0
1
421

所以我想知道是否有辦法將Javascript變數傳遞到PHP。我正在製作一個從網站獲取位置並將此位置插入到MySQL中以獲取一些分析資料的腳本。

這是我的Javascript函數:

function getPosition(position)
{
  const latitude = position.coords.latitude;
  const longitude = position.coords.longitude;
  const geoApiUrl = 'https://api.bigdatacloud.net/data/reverse-geocode-client?latitude=${latitude}&longitude=${longitude}';
  fetch(geoApiUrl)
  .then(res => res.json())
  .then(data => {
    position = data.city
    console.log(position)
  })
}

我想將position傳遞到PHP。這個函數在頁面載入時被呼叫。

我嘗試使用express,但對我來說不起作用。

P粉904405941
P粉904405941

全部回覆(1)
P粉648469285

要將JavaScript變數傳遞到PHP並將它們插入到MySQL資料庫中,您可以使用AJAX將資料傳送到伺服器上的PHP腳本。

在客戶端上,使用JavaScript來取得位置資料(緯度和經度)。 使用外部API(如https://api.bigdatacloud.net)取得城市資料。 取得城市資料後,向伺服器上的PHP腳本發出AJAX POST請求。 在PHP腳本中,從$_POST超全局變數存取位置數據,並使用PDO或MySQLi將其插入到MySQL資料庫中。 下面是一個簡潔的程式碼範例:

function getPosition(position) {
  // 获取纬度和经度
  const latitude = position.coords.latitude;
  const longitude = position.coords.longitude;
  const geoApiUrl = `https://api.bigdatacloud.net/data/reverse-geocode-client?latitude=${latitude}&longitude=${longitude}`;

  // 获取城市数据
  fetch(geoApiUrl)
    .then(res => res.json())
    .then(data => {
      const city = data.city;

      // 使用AJAX将位置数据发送到PHP
      const xhr = new XMLHttpRequest();
      const phpUrl = 'insert_location.php';
      const params = `latitude=${latitude}&longitude=${longitude}&city=${encodeURIComponent(city)}`;
      xhr.open('POST', phpUrl, true);
      xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
      xhr.send(params);
    });
}

PHP(insert_location.php):

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
  // 从AJAX请求中获取位置数据
  $latitude = $_POST['latitude'];
  $longitude = $_POST['longitude'];
  $city = $_POST['city'];

  // 使用PDO将数据插入到MySQL数据库中
  $pdo = new PDO("mysql:host=your_mysql_host;dbname=your_mysql_database", 'your_mysql_username', 'your_mysql_password');
  $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

  $stmt = $pdo->prepare("INSERT INTO location_data (latitude, longitude, city) VALUES (?, ?, ?)");
  $stmt->execute([$latitude, $longitude, $city]);

  echo '位置数据插入成功。';
}
?>
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!