Pregunta:
Fecha: 14-01-2016 16:04:43
(En Español)
¿Cómo convertir una variable JS a PHP?[Resuelta]
Estoy usando la API de Google Maps y recibo las coordenadas de la ubicacion constantemente en 2 variables JS (latitud y longitud), estas mismas las quiero guardar en la base de datos. Hay alguna forma de que se guarden constantemente sin necesidad de recargar la pagina? Votos: 2 - Respuestas: 13 - Vistas: 28 Compartir en: Google Facebook Twitter LinkedIn LinkRespuestas:
-
Fecha: 14-01-2016 17:47:04 Puedes usar ajax para enviar los valores a un archivo php Votos: 3 - Link respuesta
-
Fecha: 14-01-2016 19:30:47 Hola Juan, antes que nada bienvenido a la comunidad.
Como bien dice Jorge puedes utilizar AJAX para enviar los valores a PHP y luego insertarlos en la base de datos MySQL.
No se que tanta experiencia tengas con AJAX, la forma más fácil de hacer esto es ayudandote con JQuery, por ejemplo al momento de obtener las variables de latitud y longitud podrías hacer algo como lo siguiente:
var variableLongitud = -34.6033415; var variableLatitud = -58.3815275; $.ajax({ type: 'POST', url: 'http://direccion_url_destino.com/procesar_longitud_latitud.php', dataType: 'html', data: {latitud:variableLatitud, longitud:variableLongitud}, success: function(data) { alert('datos enviados a php correctamente!'); } });
Aquí te dejo el enlace a la documentación oficial de AJAX con JQuery: http://api.jquery.com/jquery.ajax/
Desde PHP obviamente deberás capturar los valores enviados por AJAX de la forma convencional (no hay mucho misterio). Observa en el javascript que la url destino es "http://direccion_url_destino.com/procesar_longitud_latitud.php", por lo que dentro del archivo "procesar_longitud_latitud.php" deberas tener algo como:
$latitud = isset($_POST['latitud'])?$_POST['latitud']:null; $longitud = isset($_POST['longitud'])?$_POST['longitud']:null; if(is_null($latitud) || is_null($longitud)){ //obvimante no solo deberás validar si los parametros son enviados, sino también si son del tipo FLOAT y validos. echo 'la latitud y longitud es requerdia'; exit; } //aquí pones tu código de persistencia en la base de datos MySQL, invento una función estática "guardarLatitudLongitud" para ejemplificar. DB::guardarLatitudLongitud($latitud, $longitud);
Espero que mi respuesta te sea de ayuda, luego cuentanos como te fue.
Saludos! Votos: 5 - Link respuesta -
Fecha: 15-01-2016 05:50:54 agregandome al comentario de fernando tiene toda la razon que para lo que tu necesitas hacer lo solucionas mandando esos 2 valores mediante $.ajax otra alternatva tambien podrias hacer en enviar por $.post
con ajax
var variableLongitud = -34.6033415; var variableLatitud = -58.3815275; $.ajax({ type: 'POST', url: 'http://direccion_url_destino.com/procesar_longitud_latitud.php', dataType: 'html', data: {latitud:variableLatitud, longitud:variableLongitud}, success: function(data) { alert('datos enviados a php correctamente!'); } });
con post
var variableLongitud = -34.6033415; var variableLatitud = -58.3815275; $.post('http://direccion_url_destino.com/procesar_longitud_latitud.php', { longitud : variableLongitud, latitud : variableLatitud },function(data){ alert('datos enviados a php correctamente!'); });
y para recepcionar los valores y hacer el insert into haces lo mismo que postio fernando
$latitud = isset($_POST['latitud'])?$_POST['latitud']:null; $longitud = isset($_POST['longitud'])?$_POST['longitud']:null; if(is_null($latitud) || is_null($longitud)){ //obvimante no solo deberás validar si los parametros son enviados, sino también si son del tipo FLOAT y validos. echo 'la latitud y longitud es requerdia'; exit; } //aquí pones tu código de persistencia en la base de datos MySQL, invento una función estática "guardarLatitudLongitud" para ejemplificar. DB::guardarLatitudLongitud($latitud, $longitud);Votos: 3 - Link respuesta -
Fecha: 15-01-2016 20:36:26 amigos gracias a todos por su ayuda, tengo un problema más, ya me envia correctamente las coordenadas al archivo php pero no puedo guardarlas en la BD. Les muestro mi codigo hago la consulta y paso las variables pero no me guarda nada en la BD
<?php use Illuminate\Support\Facades\DB; $latitud = isset($_POST['latitud'])?$_POST['latitud']:null; $longitud = isset($_POST['longitud'])?$_POST['longitud']:null; if(is_null($latitud) || is_null($longitud)){ //obvimante no solo deberás validar si los parametros son enviados, sino también si son del tipo FLOAT y validos. echo 'la latitud y longitud es requerdia'; exit; } DB::insert('insert into recorridos (Latitud, Longitud) values (?, ?)', [$latitud, $longitud]); ?>
Estoy usando laravel como framework Votos: 0 - Link respuesta -
Fecha: 16-01-2016 12:48:55 Hola para descartar podrías hacer un echo ante de hacer tu insert para ver si esta entrando ahora si tu echo se muestra, eso quiere decir q no está entrando el.insert descarta haciendo un echo y comentas Votos: 2 - Link respuesta
-
Fecha: 16-01-2016 18:29:28 creo que no me guarda nada porque recibe los valores en null, ya que siempre entra al if donde valida eso, como podria solicionar eso? Votos: 2 - Link respuesta
-
Fecha: 17-01-2016 04:30:36 Seguro desde el js estas enviando las.variables pero vacío, comparte tu código js para verlo, saludos Votos: 2 - Link respuesta
-
Fecha: 17-01-2016 13:20:19 yo tambien pensé eso, pero intenté mandar constantes y tampoco recibe nada
function showPosition(position) { console.log("latitud: "+position.lat+" longitud: "+position.lng); // window.alert("latitud: "+position.lat+" longitud: "+position.lng); //var variableLongitud = position.lat; //var variableLatitud =position.lng; var variableLongitud = -34.6033415; var variableLatitud = -58.3815275; $.ajax({ type: 'POST', url: 'guardarCoordenadas.php', dataType: 'html', data: {'latitud':variableLatitud, 'longitud':variableLongitud}, success: function(data) { console.log('datos enviados a php correctamente!' + data); } });
y el mi archivo php es es siguiente<?php $latitud = isset($_POST['latitud'])?$_POST['latitud']:null; $longitud = isset($_POST['longitud'])?$_POST['longitud']:null; //$latitud = $_POST["latitud"]; // $longitud = $_POST["longitud"]; if(is_null($latitud) || is_null($longitud)){ echo 'la latitud y longitud es requerdia'; exit; } ?>
que es el mismo que ustedes me proporcionaron Votos: 1 - Link respuesta -
Fecha: 18-01-2016 09:41:15 Buenas tardes
aver prueba con esto
function showPosition(position) { console.log("latitud: "+position.lat+" longitud: "+position.lng); // window.alert("latitud: "+position.lat+" longitud: "+position.lng); //var variableLongitud = position.lat; //var variableLatitud =position.lng; var variableLongitud = -34.6033415; var variableLatitud = -58.3815275; $.ajax({ type: 'POST', url: 'guardarCoordenadas.php', data: "latitud="+variableLatitud+"&longitud="+variableLongitud, success: function(data) { console.log('datos enviados a php correctamente!' + data); } });
saludos Votos: 2 - Link respuesta -
Fecha: 18-01-2016 16:56:38 gracias amigos, al fin pude solucionarlo gracias a todos por su ayuda Votos: 1 - Link respuesta
-
Fecha: 18-01-2016 17:51:55 Juan que buen que lo hayas resuelto ;)
Si es posible postea la solución a fin que quede como registro para otros usuarios que le surjan similares problemáticas
Saludos Votos: 3 - Link respuesta -
Fecha: 26-03-2019 10:16:13 Buenas tardes a todos!
Juan podrías mostrar tu código como lo resolviste para usar de guía en mi proyecto? Desde ya muchas gracias por la colaboración ???? Votos: 0 - Link respuesta -
Fecha: 25-08-2021 11:34:44 Hola, recientemente me registré en este sitio buscando la misma respuesta que Juan, quería saber si alguien tiene la solución que menciona, ya que estoy con un proyecto de la universidad tratando de resolver exactamente lo mismo. Les agradecería enormemente la ayuda!
Saludos. Votos: 0 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
