Ayúdame con esto. Tengo un javascript para obtener las coordenadas de usuario actuales (latitud y longitud) usando un botón. Entonces, lo que quiero es que cuando haga clicked en el botón, obtendrá las coordinates y display in the two input text uno para latitud y otro para longitud. Antes de esto, solo lo muestro en el elemento <p> .
HTML y PHP:
<div class="mb-3"><input class="border rounded-0 form-control" type="text" name="business_latitude" id="" placeholder="Latitude" style="font-family: Roboto, sans-serif;" value="<?php echo $bizLat; ?>"></div> <div class="mb-3"><input class="border rounded-0 form-control" type="text" name="business_longitude" id="" placeholder="Longitude" style="font-family: Roboto, sans-serif;" value="<?php echo $bizLong; ?>"></div> <p id="lati"></p> <p id="longi"></p>JavaScript:
var x = document.getElementById("lati"); var y = document.getElementById("longi"); function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition); } else { x.innerHTML = "Geolocation is not supported by this browser."; } } function showPosition(position) { x.innerHTML = "Latitude: " + position.coords.latitude; y.innerHTML ="Longitude: " + position.coords.longitude; } <?php echo $bizLat; ?> , <?php echo $bizLong; ?> aquí es donde se guardan las coordenadas en la base de datos. Solo quiero editar la latitud y la longitud presionando el botón.
puede agregar un detector de eventos para un botón
const btn = document.getElementById("yourButton"); const x = document.getElementById("lati"); const y = document.getElementById("longi"); btn.addEventListener("click", function onClick(event) { document.getElementById("input_latitude").value = x.innerHTML; document.getElementById("input_longitude").value = y.innerHTML; });No puede cambiar los valores de las variables php usando javascript ya que se ejecuta en el lado del cliente.
Puede usar document.cookie para almacenar valores de coordenadas y luego acceder a ellos en su php script . Para almacenar sus valores en cookies, actualice su script js como:
//declare two variables to store your values var latitude; var longitude; //now assign coordiates to these var in showPosition function or where it is possible. var x = document.getElementById("lati"); var y = document.getElementById("longi"); function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition); } else { x.innerHTML = "Geolocation is not supported by this browser."; } } function showPosition(position) { x.innerHTML = "Latitude: " + position.coords.latitude; y.innerHTML ="Longitude: " + position.coords.longitude; //assigning coordinates latitude=position.coords.latitude; longitude=position.coords.longitude; } //add a cookie with these variables as document.cookie="latitude="+latitude; document.cookie="longitude="+longitude; //to ensure cookies are set console.log(document.cookie); Luego en php script
$latitude = $_COOKIE['latitude']; $longitude = $_COOKIE['longitude']; <!--you can use these values to update your database table as well ––>