Добавить событие onclick для кнопки во всплывающем окне Leaflet - PullRequest
0 голосов
/ 08 мая 2019

В настоящее время я пытаюсь добавить кнопку во всплывающем окне, используя Leaflet. Это отлично работает. Я также хочу добавить событие onclick для этой кнопки. Но, похоже, работает частично. Когда я заменяю str на id, параметр корректно отправляется на load_now(). Однако, когда я поставлю str имеет параметр, функция load_now() не будет выполнена.

Вот соответствующая часть кода:

function draw(markers, category) {
//alert(category);
  var mymap = ...
  var jArray = markers;
  for(o in jArray){
    //alert(jArray[o].id);
    var trottinette = jArray[o];
    var lat = trottinette.lat;
    var lng = trottinette.lng;
    var id = trottinette.id;
    var plt = trottinette.plt;
    var chg = trottinette.chg;
    var marker = L.marker([lat, lng]).addTo(mymap);
    var str = id + "x" + lat + "x" + lng + "x" + chg;
    if(category=='user'){
      marker.bindPopup("<b>id:" + id + "</b><br>plaintes: "+
        plt + "<br> niveau: " + chg + "/4 ").openPopup();
    }else if(category=='rechargeur'){
      //TODO modifier la DB
      marker.bindPopup("<b>id:" + id + "</b><br>plaintes: "+
        plt + "<br> niveau: " + chg +
        "/4 <br/><input type='submit' value='Load Now' onclick='load_now("+ id +");'/>");
    }
  }
  alert(str);
}
function load_now(str){
//this part doesn't get executed
  alert(str);
  var id = str.split("x");
  var r = confirm("Start load process for scooter " + id[0] + "?");
  if (r == true) {
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET", "load_scooter_action.php?q=" + str, true);
    xmlhttp.send();
  }
}

Ты хоть представляешь, что я сделал не так? Заранее спасибо

1 Ответ

0 голосов
/ 08 мая 2019

Отсутствуют двойные кавычки вокруг str, как показано в следующем выводе:

<b>id:595</b><br>plaintes: 0<br> niveau: 4/4 <br/><input type='submit' value='Load Now' onclick='load_now(595x50.8352x4.3669x4);'/>

Замена строки

var str = id + "x" + lat + "x" + lng + "x" + chg;

с

var str = "\"" + id + "x" + lat + "x" + lng + "x" + chg +"\"";

решает проблему.

...