Передать PHP через функцию JavaScript

#php #javascript #xml

#php #JavaScript #xml

Вопрос:

Интересно, может ли кто-нибудь мне помочь, пожалуйста.

В настоящее время я использую приведенный ниже код (исходящий из nearby.org.uk ), чтобы позволить пользователю преобразовывать ссылки на сетку ОС в координаты широты и Спг с помощью HTML-формы.

 function converttolatlng() {
    var gr = document.getElementById('osgridref').value;

    var osgb = new GT_OSGB();


    if (osgb.parseGridRef(gr)) {
        var wgs84 = osgb.getWGS84();

        document.getElementById('osgb36lat').value = wgs84.latitude;
        document.getElementById('osgb36lon').value = wgs84.longitude;
    }
    else {
        document.getElementById('osgb36lat').value = "n/a";
        document.getElementById('osgb36lon').value = "n/a";
    }

}
  

Однако ежемесячно мне нужно конвертировать XML-список из примерно 22 000 ссылок на сетку ОС. Из-за большого объема задействованных данных, очевидно, нецелесообразно использовать HTML-форму, поэтому я работаю над способом автоматизации этого. Список создается в формате XML, поэтому я собрал приведенный ниже код для извлечения XML-данных в PHP.

 <? 
  $objDOM = new DOMDocument(); 
  $objDOM->load("xmlfile.xml"); 

  $note = $objDOM->getElementsByTagName("Details"); 

  foreach( $note as $value ) 
  { 
    $NGR = $value->getElementsByTagName("NGR"); 
    $ngr  = $NGR->item(0)->nodeValue; 

    echo "$ngr <br>"; 
  } 
  

Теперь я дошел до того, что немного не уверен в том, что делать дальше. Я знаю, что мне нужно преобразовать ссылки на сетку с помощью функции Javascript и, кроме того, создать поля Lat amp; Lng, которые обычно были бы в моей HTML-форме. Затем мне нужно иметь возможность загружать эти данные в таблицу в базе данных MySQL.

Может быть, кто-нибудь, возможно, взглянет на это, пожалуйста, и покажет мне, что мне нужно для преобразования ссылок на сетку и как я могу загрузить их в свою базу данных.

Большое спасибо

Обновить

Это извлечение XML-файла:

  <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> 
- <Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <Details>
  <LISTENTRY>1003886</LISTENTRY> 
  <NGR>SS 00000 11111</NGR> 
  </Details>
  

и, пожалуйста, найдите ссылку на файл ‘geotools’ здесь.

Комментарии:

1. Не может быть большой помощи без знания структуры XML-файла и кода, который составляет функцию getWGS84 Javascript.

2. Привет, большое спасибо за ответ на мой пост. Я добавил выдержку из XML-файла и ссылку на файл ‘geotools’, с которым работает функция JS, в мой исходный пост. Я не хотел вставлять весь файл целиком, так как это довольно длинный скрипт. С уважением

Ответ №1:

Передача через веб-сервис, как вы описываете, действительно должна быть вашим последним вариантом, возможно, этот php-код из проекта Geograph — это то, что вы ищете. Если нет, я бы посоветовал вам перевести код js на php.

РЕДАКТИРОВАТЬ: как интегрировать? Я бы начал с небольшого чтения на OSB36, чтобы понять, что на самом деле представляют собой 3 элемента <NGR> и как их следует интерпретировать. Самая сложная часть — это перевод цифр сетки в смещение (вам нужно обратное osgb36_to_gridref ). Один из способов сделать это может быть получен из parseGridRef geotools2.js

Комментарии:

1. Привет, большое спасибо за ответ на мой пост. Я взглянул на это, и, пожалуйста, извините мое невежество новичков в этом. Не могли бы вы сказать мне, пожалуйста, как я мог бы включить это, используя переменные в моем существующем скрипте? С уважением

2. Большое спасибо за обновление. Я посмотрю на geotools JS. С уважением