LINUX.ORG.RU

интеграция КЛАДР в существующий сайт


1

1

необходимо в существующий проект добавить кладр. существует сайт компании написанный на perl база данный postgresql/ при формировании заказа через вэб необходимо сделать «всплывающие подсказки» в поля заполнения адреса. то есть. человек делает заказ и вводит свой адрес через форму на сайте. надо что бы при вводе адреса (область , населенный пункт, улица) всплывали названия. человек начинает вводить алтайский край и надо что бы эти значения подставлялись из КЛАДР, точно так же с городом и областью. всплывающие подсказки (списки вроде как можно реализовать на ajax, но backend на перле я не нашел). второй момент. необходимо если человек начал вводить улицу, она выбралась из кладра. потом человек (допустим) начинает вводить область или город, и уже на основания имеющейся улицы выпадали соответствующие списки областей и городов. кто что подскажет. може кто то делал нечто подобное. сам кладр конвертировать в формат postgresql вроде как не сложно.

може кто то делал нечто подобное

Делал, а в чём проблема? Или надо разработать и положить код сюда?

King_Carlo ★★★★★ ()
Ответ на: комментарий от King_Carlo

да проблема в том, что как то оно у меня в голове не укладывается. может кто подскажет что. даже с тем же аяксом.

Evgen25 ()
Ответ на: комментарий от Evgen25

не нашел я готовых библиотек для интеграции, для пхп есть куча. для пела не нашел. может кто видел. а то даже не знаю с какого края браться. кладр уже загрузил в БД

Evgen25 ()
Ответ на: комментарий от Evgen25

Взять из php готовое и переделать. В чем проблема-то?

Temp ()
Ответ на: комментарий от King_Carlo

King_Carlo, расскажите как у вас всё работает, какие грабли могут возникнуть. может что то готовое использовали. поделитесь своим опытом

Evgen25 ()

Это можно на коленке наколбасить максимум за 1 час. Установите обработчики KeyUp, Change и шлите форму аяксом на сервер, там формируйте текст подсказок и содержимое селектов. Отправляете ответ в JSON, в браузере разбираете и в зависимости от содержимого показываете подсказки и устанавливаете селекты. В чем проблема - не пойму.

no-such-file ★★★★★ ()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от Evgen25

какие грабли могут возникнуть

В КЛАДРе есть такой момент, что населённые пункты могут быть разного подчинения, т.е. деревня находится в областном районе, а город сразу в области и т.д. Если вам не нужно формировать адрес в точности по КЛАДР, то можно это не учитывать и просто отбирать населенные пункты по области.

no-such-file ★★★★★ ()
Ответ на: комментарий от no-such-file

у меня получился следующий код:

<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
<script>
$(document).ready(function(){
$(".search").keyup(function()
{
var city_id = $("#city_id").val();
var street_id = $("#street_id").val();
var dataString = 'city='+ city_id + '&street='+ street_id;
if(city_id=='' && street_id=='')
{}
  else
  {
  $.ajax({
          type: "POST",
          url: "search.pl",
          data: dataString,
          cache: false,
          success: function(html)
              {
              $("#display_city" ).html(html).show();
              }
         });
  }return false;
});
});
</script>
<table>
<thead>
<th> город </th>
<th> улица </th>
</thead>
<tbody>
<tr>
<td> <input type="text" class="search" id="city_id" > </td>
<td> <input type="text" class="search" id="street_id"> </td>
</tr>
<tr>
<td> <div id="display_city"></div> </td>
<td> <div id="display_street"></div> </td>
</tr>
</tbody>
</table>
</html>
подсказки выдает, но возникло два момента: 1. посказки выводятся просто строкой, а хотелось бы списком из которого можно было бы выбрать нужное 2. осилил только для одного поля, как сделать на все

Evgen25 ()

Начни с того, что в 2014м году тебя должен интересовать не кладр, а фиас. И уже по нему гугли.

dr-yay ★★ ()
Ответ на: комментарий от dr-yay

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

Evgen25 ()
Ответ на: комментарий от Evgen25

1)данные в кладр, лежащем на налог.ру уже давно являются экспортом из фиас, лежащем там же.

2)фиас весит гиг в xml, а кладр несколько мегабайт в сжатом arj dbase, после заливания из в боевую субд весить они будут примерно одинаково.

2)их надо регулярно обновлять чтобы не попасть в просак, и фраза «у меня уже лежат» мягко говоря легкомысленна.

3)обновляется кладр полным перезаливанием всех данных. Фиас, насколько мне ведомо, может обновляться диффами.

4)о преимуществах фиаса перед кладром подробно написано на шваброшвабре

5)мне показалось, что про фиас больше примеров нагугливается, и они покрасивее.

dr-yay ★★ ()
Ответ на: комментарий от dr-yay

А ещё работа с кладром запомнилась мне неоднократным восстановлением из бекапов нескольких баз одинес, у которых адреса феерично становились кракозябрами после очередного обновления справочников, потому что кладр скачивали то в 866, то в 1251.

dr-yay ★★ ()
Ответ на: комментарий от wwwsevolod

если некритична зависимость от левого васи, то внешний кладр это отлично, тем более, что среди них можно выбирать.

dr-yay ★★ ()
Ответ на: комментарий от wwwsevolod

про сорцы там не видал ничего, есть «коробочная версия», которая вроде как избавляет от зависимости от глюков васиной инфраструктуры. Кстати, там фиас.

dr-yay ★★ ()
Ответ на: комментарий от wwwsevolod

я ж и говорю топикстартеру, чтоб гуглил про фиас и его примеры. А эту штуку погромистам покажу, пусть туда поглядят, когда будут кладр переписывать.

dr-yay ★★ ()
Ответ на: комментарий от dr-yay

ну она не очень сделана на самом деле, у них только one string search более менее правильно сделан, такие штуки надо полностью на сфинксе делать, или лучше (проще) даже на elasticsearch, что бы фуззи серч был полноценный

wwwsevolod ()
Ответ на: комментарий от wwwsevolod

ну, как самим делать, мы ещё подумаем, а покуда можно глянуть, как сделано у других, хоть и на пехопе

dr-yay ★★ ()
Ответ на: комментарий от dr-yay

а как насчет того что я нацарапал? я преследую лишь цель правильного заполнения адреса, а то народ любит опечатываться, сокращать. да и бывают случаи когда есть улица проспект или переулок с одинаковыми названиями, особено в больших городах это очень часто встречается. по поводу http://kladr-api.ru/ я так понял что там лежит подключаемая библиотека, а работает это всё через внешний ресурс. и народ очень часто жалуется что это то не правильно работает то перестает работать вообще

Evgen25 ()
Ответ на: комментарий от Evgen25

и еще. необходимо что бы проект работал локально, всякое бывает. может и не быть интернета. и вся работа встанет. то дерево провод оборвет, то заплатить забудут, то порежут провода.

Evgen25 ()
Ответ на: комментарий от Evgen25

вон выше ссылка на гитхабную страницу этого кладр-апи, а кот проверять мне не досуг, прошу прощения

dr-yay ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.