您好首先感谢您的帮助朋友。
我想看看他们是否可以帮助我解决这个问题,我在Google数据库中插入谷歌地图的纬度和经度包括一个名为“pathname”的变调夹文本输入,非常适合插入纬度和经度,但是当你插入“pathname”时,我在路径名字段inserccionen“[object HTMLCollection]”的演员表中返回 我想要的是插入该输入的文本或值。
以下是我的代码,看看他们是否可以帮助我,谢谢
Php Code Index.php:
<?php
$lat = "18.472848374914534";
$lng = "-69.92593261718753";
$pos = $_POST ["pos"];
$nombre_ruta = $_POST ["nombre_ruta"];
echo "
<div id='info' name='info' class='info'>".$pos."</div>
<div id='seleccion_mapa'></div>
<input type='text' name='nombre_ruta' id='nombre_ruta' placeholder='ponga aqui, el nombre de la ruta' class='Txt_SELECCIONAR' />
<input type='submit' id='enviar' name='enviar' value='CREAR RUTA' class='Txt_btn_submit2' value='CREAR RUTA'>
<br>
<div id='respuesta'></div>";
?>
js脚本Ajax
<script>
$(document).ready(function(){
lat = "<?php echo $lat; ?>" ;
lng = "<?php echo $lng; ?>" ;
var map;
function initialize() {
var myLatlng = new google.maps.LatLng(lat,lng);
var mapOptions = {
zoom: 7,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("seleccion_mapa"), mapOptions);
var marker = new google.maps.Marker({
position: myLatlng,
draggable:true,
animation: google.maps.Animation.DROP,
web:"Localización geográfica!",
icon: "../../../../assets/img/marker.png"
});
google.maps.event.addListener(marker, 'dragend', function(event) {
var myLatLng = event.latLng;
lat = myLatLng.lat();
lng = myLatLng.lng();
nombre_ruta = myLatLng.nombre_ruta();
document.getElementByTagId('info').innerHTML = [
lat,
lng,
nombre_ruta
].join(', ');
});
marker.setMap(map);
}
google.maps.event.addDomListener(window, 'load', initialize);
$("#enviar").click(function() {
var url = "../../../controllers/cargar_mapa.php";
$("#respuesta").html('<img src="../../../../assets/img/loading17.gif" />');
$.ajax({
type: "POST",
url: url,
data: 'lat=' + lat + '&lng=' + lng + '&nombre_ruta=' + nombre_ruta ,
success: function(data)
{
$("#respuesta").html(data);
}
});
});
});
</script>
和数据库插入代码
<?php
error_reporting(E_ERROR | E_WARNING | E_PARSE);
include('../../Connections/conexion_mapa_ruta.php');
$lat=strip_tags(mysqli_real_escape_string($con,$_POST['lat']));
$lng=strip_tags(mysqli_real_escape_string($con,$_POST['lng']));
$nombre_ruta=$_POST['nombre_ruta'];
$pos=$lat.",".$lng;
mysqli_query($con,"INSERT INTO ruta_transporte (Lat, Lng, Pos, nombre_ruta) values ('$lat','$lng','$pos','$nombre_ruta')");
echo "<b> Posición guardada: </b>".$nombre_ruta.",".$lat.", ".$lng;
?>
答案 0 :(得分:0)
在客户端构建POST数据时:
data: 'lat=' + lat + '&lng=' + lng + '&nombre_ruta=' + nombre_ruta
nombre_ruta
是一个对象。可能从它设置在这里的时间开始?:
nombre_ruta = myLatLng.nombre_ruta();
我真的不确定该方法的返回方式,您可能需要在浏览器中进行调试才能找到答案。但问题是,无论该变量是什么,它都是一个对象。既然你正在尝试从中构建一个字符串,那么对象的字符串表示就是你所看到的:
[object HTMLCollection]
由于您正在构建一串键/值对,并且由于您的服务器端代码需要处理字符串(通过将其插入数据库中的文本列),因此您将前往想要确保在POST该值之前将变量设置为一个简单的字符串值。
该字符串值必须是什么,这取决于您。也许你对象的某些属性? (不确定这有多大可能性,我仍然不清楚为什么Google Maps API会在事件属性上使用nombre_ruta()
方法,或者为什么该方法会返回HTMLCollection
个对象。您可能可能需要进行更多调试,可能会比问题中提供的内容更多。)