如何通过JQuery更改<script>的内容?</script>

时间:2015-04-19 20:50:33

标签: javascript jquery

我想知道如何更改此Leaflet代码的内容,

<script id="pdis">
window.onload = function () {
    var map = L.map('map').setView([-26.40894, -54.67430], 18);

    L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
        attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
    }).addTo(map);

        L.marker([-26.40893, -54.67438]).addTo(map)
            .bindPopup("<b>eldorado punto de interes</b><br/> tu chichachicha.").openPopup();

        L.marker([-26.40896, -54.67403]).addTo(map)
            .bindPopup("<b>Eldo punto 1</b><br />I am a popup.").openPopup();

};
</script>

我试图在搜索后更新那些L.markers,比如

<?php

include 'conexion.php';

$q=$_POST[q];
$con=conexion();

$sql="select * from pdi where name LIKE '".$q."%'";
$res=mysql_query($sql,$con);

if(mysql_num_rows($res)==0){

echo '<b>No hay sugerencias</b>';

}else{

echo '<b>Sugerencias:</b><br/>';

while($fila=mysql_fetch_array($res)){

echo '<img src="logo/'.$fila['id'].'.jpg"></img><br><em>'.$fila['cat'].'</em><br><b>'.$fila['name'].'</b><br>'.$fila['dir'].'<br><a href="msite/'.$fila['id'].'.html" target="_blank">Más...</a>';
}

}

?>

首先,我不知道是否必须使用JQuery&#39; text()html()

1 个答案:

答案 0 :(得分:0)

因此,我解释您的问题的方式是,您希望使用搜索返回的坐标更新传单地图上的标记。

为此,您应该更改当前代码,将标记存储在可访问的变量中。像

这样的东西
var markerA = L.marker([-26.40893, -54.67438]).addTo(map);
var markerB = L.marker([-26.40896, -54.67403]).addTo(map);

然后,您可以使用

更改标记的坐标
markerA.setLatLng([newLat, newLong]) ;
需要在ajax调用中通过php脚本返回

newLatnewLong。这个JavaScript看起来像

$.ajax({
  url: 'search.php',
  data: {q: search_query},
  success: function(data){
    // update a single marker with the first set of returned coordinates
    markerA.setLatLng([data[0].lat, data[0].long]) ;
  },
  dataType: 'json'
});

并且php文件search.php看起来像(从您的示例中更改)

<?php

include 'conexion.php';

$q=$_GET[q];
$con=conexion();

$sql="select * from pdi where name LIKE '".$q."%'";
$res=mysql_query($sql,$con);

$result = array();

while($fila=mysql_fetch_array($res)){
  // append lat long coords to result array
  $result[] = array('lat' => $fila['lat'], 'long' => $fila['long']);
}

echo json_encode($result);

?>
如果我在任何地方都发生了语法错误,请道歉 - 这应该是概述而不是实际代码。