Nueva pregunta

Pregunta:

Fecha: 29-07-2018 18:12:37 (En Español)

variable javascript[No resuelta]

hola tengo un codigo que obtengo la posición actual. puedo mostrar pero logro tener la variable en php 1 vez sola, y la idea es yener un boton luego para insertar en la base de datos las coordenadas. a ver si me pueden ayudar. Aca el codigo.

  <section>
  
    <p class="titulo">Puede verificar su posición</p>
    <button type="button" class="btn" onclick="initiate_geolocation();">Ver mi posición ahora</button>
    <br>
    

<?php 
$fecha ='<span class="texto" id="timestamp"></span>';
$lat= '<span class="texto" id="latitude"></span>';
$lon= '<span class="texto" id="longitude"></span>';
$error= '<span class="texto" id="rangoerror"></span>';
?>

<?php echo '<span class="texto"> Fecha:</span> '.$fecha.'<br>'; ?>

<p id="codigo">
<?php echo '<span class="texto"> '.$lat.','.$lon.'</span>'; ?>

</p>
<?php 
 echo '<span class="texto">Error Geolocalizacion:  </span> '. $error.' <span class="texto">metros </span>'.'<br>'; ?>


Gracias
Etiquetas: Votos: 0 - Respuestas: 8 - Vistas: 14 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 30-07-2018 09:18:59 @sebastian Gurdo, puedes formular nuevamente la pregunta no logro entender que necesitas y se ve que tienes un evento JS si puedes muestra el código que sería bueno para ayudar.   Votos: 0 - Link respuesta
     
  • Fecha: 30-07-2018 12:50:50 Sebastián, como te ha comentado Ronaldo, no vemos tu javascript.

    Por lo que estoy viendo, te recomendaría que hagas (incluso en campos hidden) un registro de datos y lo lleves vía AJAX a tu base de datos.

    recuerda que además de initiate_geolocation() tienes watch_geolocation() y otros datos más que te permiten el seguimiento.

    Tómalo en javascript y después lo llevas a PHP y/o tu base de datos
      Votos: 0 - Link respuesta
     
  • Fecha: 03-08-2018 15:35:14 En la funcion initiate_geolocation() puede almacenar las variables en cookies y con php puede pedir las cookies y listo   Votos: 0 - Link respuesta
     
  • Fecha: 13-08-2018 04:59:18 Hola perdón en el tiempo en responde, aún no lo solucione. Le adjunto el código.

    <script>
    var watchId;
    // Controlamos los tiempos de espera mínimo y máximo de nuestra geolocalización respecto a la petición anterior
    var PositionOptions = {
        enableHighAccurace: true, // busca el mejor dispositivo de geolocalización (GPS, tiangulación, ...)
        timeout: 5000,
        maximumAge: 60000
    };
    // initiate_geolocation() utiliza la geolocalalización solamente cuando se solicita.
    // Con PositionOptions aseguramos que la posición no corresponde a caché
    function initiate_geolocation() {
      if (navigator.geolocation) {
        var watchId = navigator.geolocation.getCurrentPosition(successCallback, errorCallback, PositionOptions);
      } else {
        document.getElementById("mensaje").innerHTML = "Lo sentimos pero el API de Geolocalización de HTM5 no está disponible para su navegador";
      }
    }
    // Reitera la geolocalización hasta que la detenemos con clear_watch_geolocation()
    /*function watch_geolocation() {
      if (navigator.geolocation) {
        var watchId = navigator.geolocation.watchPosition(successCallback, errorCallback, PositionOptions);
      } else {
        document.getElementById("mensaje").innerHTML = "Lo sentimos pero el API de Geolocalización de HTM5 no está disponible para su navegador";
      }
    }
     Detenemos la geolocalización reiterada 
    function clear_watch_geolocation() {
      if (navigator.geolocation) {
        navigator.geolocation.clearWatch(watchId);
      } else {
        document.getElementById("mensaje").innerHTML = "Lo sentimos pero el API de Geolocalización de HTML5 no está disponible para su navegador";
      }
    }*/
    function successCallback(pos) {
      var timestamp = document.getElementById('timestamp');
      var date = new Date(pos.timestamp);
      // Hacemos legible la fecha a nuestro léxico.
      // timestamp nos daría una lectura como ésta: Sat Jan 17 2015 18:47:52 GMT+0100
      var mes = date.getMonth() + 1;
      if (mes < 10) {
        mes = "0" + mes
      }
      var dia = date.getDate();
      if (dia < 10) {
        dia = "0" + dia
      }
      var anyo = date.getFullYear();
      var hora = date.getHours();
      if (hora < 10) {
        hora = "0" + hora
      }
      var minuto = date.getMinutes();
      if (minuto < 10) {
        minuto = "0" + minuto
      }
      var segundo = date.getSeconds();
      if (segundo < 10) {
        segundo = "0" + segundo
      }
      var timestamp = document.getElementById('timestamp');
      timestamp.innerHTML = dia + "/" + mes + "/" + anyo + ", " + hora + ":" + minuto + ":" + segundo;
      var latitude = document.getElementById('latitude');
      // con toFixed(6) limito decimales a 6
      latitude.innerHTML = pos.coords.latitude.toFixed(6);
      var longitude = document.getElementById('longitude');
      longitude.innerHTML = pos.coords.longitude.toFixed(6);
      // accuracy considera el diámetro máximo de error. Muchos lo dividen por 2 ya que sería el radio máximo de error.
      var accuracy = document.getElementById('rangoerror');
      accuracy.innerHTML = pos.coords.accuracy;
      // La altitud sobre la superficie. Solo será medible desde avión, paramente ... o será 0
      var altitude = document.getElementById('altitude');
      altitude.innerHTML = pos.coords.altitude.toFixed(6);
      // accuracy considera el diámetro máximo de error. Muchos lo dividen por 2 ya que sería el radio máximo de error.
      var altitudeAccuracy = document.getElementById('rangoerrorAltitud');
      altitudeAccuracy.innerHTML = pos.coords.altitudeAccuracy;
      // Sentido y velocidad si la medición se hace desde un dispositivo en movimiento
      // 0 => Norte en sentido agujas del reloj hasta 360º
      var heading = document.getElementById('sentido');
      heading.innerHTML = pos.coords.heading;
      // metros/segundo si se detecta movimiento
      var speed = document.getElementById('velocidad');
      speed.innerHTML = pos.coords.speed;
    };
    /* Posibles errores que se pueden producir en la geolocalización */
    function errorCallback(error) {
      var appErrMessage = null;
      if (error.core == error.PERMISSION_DENIED) {
        appErrMessage = "El usuario no ha concedido los privilegios de geolocalización"
      } else if (error.core == error.POSITION_UNAVAILABLE) {
        appErrMessage = "Posición no disponible"
      } else if (error.core == error.TIMEOUT) {
        appErrMessage = "Demasiado tiempo intentando obtener la localización del usuario."
      } else if (error.core == error.UNKNOWN) {
        appErrMessage = "Error desconocido"
      } else {
        appErrMessage = "Error insesperado"
      }
      document.getElementById("mensaje").innerHTML = appErrMessage
    };
    </script>
      </head>
      <body>
      <div class="contenedor-sitio"> 
    <img src="Img/logo_quilmes.jpg"  alt="Quilmes Municipio" /> 
    </div>
      <section>
      
        <p class="titulo">Puede verificar su posición</p>
        <button type="button" class="btn" onclick="initiate_geolocation();">Ver mi posición ahora</button>
        <br>
        
    
    <?php 
    $fecha ='<span class="texto" id="timestamp"></span>';
    $lat= '<span class="texto" id="latitude"></span>';
    $lon= '<span class="texto" id="longitude"></span>';
    $error= '<span class="texto" id="rangoerror"></span>';
    ?>
    
    <?php echo '<span class="texto"> Fecha:</span> '.$fecha.'<br>'; ?>
    
    <p id="codigo">
    <?php echo '<span class="texto"> '.$lat . $lon.'</span>'; ?>
    
    </p>
    <?php 
     echo '<span class="texto">Error Geolocalizacion:  </span> '. $error.' <span class="texto">metros </span>'.'<br>'; ?>
    
    
    
    
    
    
    <button type="button" id="copyClip" class="btn" data-clipboard-target="#codigo">Copiar Coordenadas</button>  
       
    
        <div id="mensaje" style="color:#FF0000;"></div>
        </section>
      
         <script src="js/copiar.js"> </script>   
      </body>
    </html>
      Votos: 0 - Link respuesta
     
  • Fecha: 13-08-2018 12:34:28 Hola Sebastián:

    Ignoro el contenido del archivo js/copiar.js

    No obstante, tal y como presentas el código, las variables $fecha, $lat, $lon y $error no recogen ningún valor sino un <span> que lo rellena javascript.

    Si bien PHP trabaja en el servidor, dichas variables tan solo contienen trozos de HTML en un viaje navegador(cliente) -> servidor -> navegador(cliente) nuevamente que es gratuito.

    Si lo que quieres es llevar estos datos a una base de datos, deberás hacerlo mediante un pequeño formulario o vía AJAX para después mostrarlos en esta u otra página.
      Votos: 0 - Link respuesta
     
  • Fecha: 13-08-2018 18:20:17 Hola txema gracias por responder. El js/copiar.js perdón es una función para copiar el texto encerrado en un div.
    La realidad que no sé mucho de javascript pero la etiqueta spam con el id me devuelve el valor. Eh intentado hacer un formulario y con los id igual y no me toma el valor. Veo en el código que el valor latitude y longitude está así con var latitude=document.getElementById(‘latitude’);
    Pero no logro obtenerlo
      Votos: 0 - Link respuesta
     
  • Fecha: 14-08-2018 00:15:55 En realidad todo el código Javascript que necesitas es este

    <script>
        var watchId;
        var PositionOptions = {
            enableHighAccurace: true, // busca el mejor dispositivo de geolocalización (GPS, tiangulación, ...)
            timeout: 5000,
            maximumAge: 60000
        };
        // initiate_geolocation() utiliza la geolocalalización solamente cuando se solicita.
        // Con PositionOptions aseguramos que la posición no corresponde a caché
        function initiate_geolocation() {
            if (navigator.geolocation) {
                var watchId = navigator.geolocation.getCurrentPosition(successCallback, errorCallback, PositionOptions);
            } else {
                document.getElementById("mensaje").innerHTML = "Lo sentimos pero el API de Geolocalización de HTM5 no está disponible para su navegador";
            }
        }
    
        function successCallback(pos) {
            var latitude = pos.coords.latitude.toFixed(6); // latitud
            var longitude = pos.coords.longitude.toFixed(6); // longitud
            var accuracy = pos.coords.accuracy; // rango de error máximo de geolocalización
        };
        /* Posibles errores que se pueden producir en la geolocalización */
        function errorCallback(error) {
            var appErrMessage = error.message;  
            // Define las causas por las que no se ha podido geolocalizar: 
            // No se han concedico permisos, no está disponible, ...
    </script>


    En cuatro variables tienes los datos suficientes a los que puedes añadir fecha y hora.

    A partir de aquí, tenemos las variables que iremos recogiéndolas de acuerdo a nuestros propósitos.Se recomienda colocar el Javascript (o enlazarlo) al final del HTML antes del cierre de </body> a fin de que la estructura HTML ya esté configurada antes de que Javascript se ejecute.

    Por otra parte, has de crear el botón que llame a la función, o en su defecto, llamarla en el momento de cargar la página
    document.addEventListener('load', initiate_geolocation);


    Observa que las variables son locales a cada función, por lo que es dentro de dichas funciones donde has de recogerlas hacia texto (.innerHTML), valor de input (.value) etc.

    Después vendrá el envío y el registro en la base de datos.
      Votos: 0 - Link respuesta
     
  • Fecha: 14-08-2018 03:35:49 Perfecto era solo poner (.value). Gracias algo nuevo se aprende.

    Saludos y muchas gracias por todo.
      Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com