2013-07-11 2 views
0

Я использую метод post HTML-форм для отправки обратных запросов пользователя в файл perl, который записывает my page. Мой вопрос относится к лат и длинным окнам поиска, причем со стороны с синим фоном. Я добавил код от this example к моей карте, который вводит функцию, в которой лат/длинный щелчок мыши вспыхивает на событиях щелчка.Как я могу использовать результат функции javascript, такой как метод post для моих html-форм?

Есть ли способ, которым я мог бы интегрировать эту функцию с моими формами? Смогу ли я

a) добавить кнопку формы, которая включает и выключает эту функцию? (Так что не каждый клик поиск в базе данных)

и

б) использовать метод пост, или что-то подобное, чтобы отправить координаты, полученные от мыши обратно в мой файл Perl?

это отношение Javacript:

OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, 
{ 
    defaultHandlerOptions: 
    { 
     'single': true, 
     'double': false, 
     'pixelTolerance': 0, 
     'stopSingle': false, 
     'stopDouble': false 
    }, 
    initialize: function(options) 
    { 
     this.handlerOptions = OpenLayers.Util.extend({}, this.defaultHandlerOptions); 
     OpenLayers.Control.prototype.initialize.apply(this, arguments); 
     this.handler = new OpenLayers.Handler.Click(this, 
     { 
      'click': this.trigger 
     } 
     , this.handlerOptions); 
    }, 
    trigger: function(e) 
    { 
     var lonlat = map.getLonLatFromPixel(e.xy); 
     alert("You clicked near " + lonlat.lat + " N, " + 
            + lonlat.lon + " E"); 
    } 
}); 

затем в карте инициализации Я также использую

var click = new OpenLayers.Control.Click(); 
map.addControl(click); 
click.activate(); 

в html форму, как это:

<form action='maps7.pl' method='post'> 
    Latitude: <input type="float" name="lat"><br> 
    Longitude: <input type="float" name="long"><br> 
    <INPUT TYPE="submit" VALUE="What maps are here?"><br> 
    OR<br> 
    Place Name: <input type="text" name="place"><br><br> 
</form> 

Я в настоящее время запуска результаты запроса с использованием perl dbi, используя этот код, чтобы сохранить их как переменные:

$cgi = new CGI; 

for $key ($cgi->param()) 
{ 
    $input{$key} = $cgi->param($key); 
} 

$searchseries = $input{series}; 
$slat = $input{lat}; 
$slong = $input{long}; 

Так что я хочу, чтобы функция, чтобы иметь возможность изменить $slat и $slong или форму в качестве новых переменных, если это будет необходимо.

+1

Пожалуйста, разместите соответствующие биты HTML и JavaScript здесь, чтобы будущие посетители могли сослаться на них, спасибо. – mc10

+0

'

ответ

0

Вы должны захватить широту и логичность с помощью JavaScript и установить атрибут value входных данных формы. Установите идентификатор в каждом из ваших входов, чтобы вы могли выбрать их через JavaScript, вы можете использовать jQuery или простой JS для достижения этого. В идеале пользователь должен иметь возможность вводить координаты вручную и с помощью мыши. Также полезно предоставить некоторую визуальную обратную связь, нарисуя маркер в нажатом положении.

Смежные вопросы