我有一个表单,可以将一些文本与Leaflet地图上的标记相关联:
<form action="map.php" method="POST">
<section>
<label>write some text here</label>
<textarea id="text" rows="3" name="area"></textarea>
</section>
<input type="submit" value="show map" />
</form>
如上所示,文本区域的内容被传递到页面map.php,在该页面上显示地图。
在地图上,会显示位置标记,并且弹出窗口包含通过文本区域发布的文本(变量$text
):
<?php
$text = htmlspecialchars($_POST["text"]);
?>
<center>
<div id="map" class="embed-container"></div>
</center>
<script>
var map = L.map('map').setView([46.13, 11.11], 9);
L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
{
attribution: '© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>',
maxZoom: 17,
minZoom: 9
}).addTo(map);
</script>
<script>
var icon = L.icon({
iconUrl: 'img/gps.png',
iconSize: [25, 25],
});
var marker = L.marker(['<?=$latitude;?>', '<?=$longitude;?>'], {icon: icon}).addTo(map);
marker.bindPopup('<?=$text;?>');
</script>
问题在于,如果我在文本区域中写东西时按下回车键,弹出标记什么都不会传递。我尝试使用\n等,但都无法正常工作。它们在弹出文本中显示为字符串,而不是换行符。
有什么想法吗?
<br>
。 - xmojmr$text
。我不确定。 - Alex