„JavaScript-Variablen in PHP konvertieren: JavaScript-Variablen in PHP konvertiert'
P粉904405941
P粉904405941 2023-09-18 11:50:08
0
1
482

Ich frage mich also, ob es eine Möglichkeit gibt, Javascript-Variablen an PHP zu übergeben. Ich erstelle ein Skript, das einen Standort von einer Website abruft und diesen Standort in MySQL einfügt, um einige Analysedaten zu erhalten.

Das ist meine Javascript-Funktion:

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)
  })
}

Ich möchte position in PHP übergeben. Diese Funktion wird aufgerufen, wenn die Seite geladen wird.

Ich habe versucht, Express zu verwenden, aber es funktioniert bei mir nicht.

P粉904405941
P粉904405941

Antworte allen(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 '位置数据插入成功。';
}
?>
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage