Я хотел бы использовать переменную javascript (адрес электронной почты), которую можно получить, щелкнув точку на карте (mapbox). Я хотел бы вставить эту переменную в форму html / php в качестве адреса mailto. Но я потратил часы, пытаясь получить переменную из функции onclick, но безрезультатно. Это моя последняя попытка:

var agencyemail; 

map.on('click', 'unclustered-point', function (e) {
agencyemail = e.features[0].properties.email; 
// the variable functions correctly within the onclick function... and then more
}

По-видимому, это не работает. Отсюда я хотел бы вставить захваченную переменную в форму php

 $et_email_to = 
'<script>
document.write(agencyemail);
</script>' ;    

Я также пробовал использовать sessionStorage, localStorage или let, но до сих пор не понял. Спасибо за вашу помощь.

РЕДАКТИРОВАТЬ: Я использовал предложенные здесь решения. Я просто вставил переменную в значение скрытого поля формы.

    map.on('click', 'unclustered-point', function (e) {
    agencyemail = e.features[0].properties.email;
    document.getElementById("agencyemail").value = agencyemail;

... и в html

    <input type="hidden" value="" id="agencyemail" name="agencyemail"/> 

Спасибо за помощь.

0
Rich 21 Сен 2020 в 16:17

1 ответ

Лучший ответ
map.on('click', 'unclustered-point', function (e) {
   var agencyemail = e.features[0].properties.email; 
   // the variable functions correctly within the onclick function... and then more
   // HERE is where you would use that variable to change something in a form, for example with jquery:
   $('a.mailto').prop('href','mailto:' + agencyemail);
}

Если вы создадите свой html-документ с элементом <a class="mailto">, вы увидите, что он работает

Предполагается, что var agencyemail = e.features[0].properties.email; действительно предоставит вам нужную информацию, у меня нет возможности проверить это.

Небольшой набор кодов, чтобы показать вам, как работает код jquery: https://jsfiddle.net/jhc0ky1f/

1
TKoL 21 Сен 2020 в 13:22