У меня есть скрытое поле внутри формы, которое я создаю с помощью API форм Drupal, например:
$form['position'] = array(
'#type' => 'hidden',
'#default_value' => '57.149953,-2.104053',
'#attributes' => array(
'id' => 'geoposition',
)
);
Когда я загружаю страницу, на которой отображается форма, у меня немногоJavaScript, который редактирует скрытое поле следующим образом:
if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(getPosition, noPosition, 10);
}
function getPosition(position) {
var pos = document.getElementsByName("position");
pos.value = position.coords.latitude + "," + position.coords.longitude;
alert(pos.value);
}
Теперь последний оператор в этом фрагменте фактически выводит правильное значение текущей позиции пользователя.Однако, когда я отправляю форму, значение, передаваемое на сервер для манипуляции, является значением по умолчанию, а не обновленным значением.Значение, используемое после отправки формы, подбирается так:
$map_field .= 'src="http://maps.google.co.uk/maps?q='.$form_state['values']['position'].'&output=embed"></iframe>';
Есть идеи?
Спасибо,