Recommended Posts

Быстрый хак 

Смотрим в админке в справочнике городов ID города.

после в header.tpl вставляем следующее содержимое 

<script type="text/javascript" >
  $(document).ready(function(){
    if($("#city_id").val()){
      ymaps.ready(function(){
         var city = ymaps.geolocation.city;
         $("#user-city").text(ymaps.geolocation.city);
      	 if(city == 'Москва'){
           $("#city_id [value='1']").attr("selected", "selected");
         }
         else(city == 'Киев'){
           $("#city_id [value='2']").attr("selected", "selected");
         }
      });
    }
});    
    
</script>

для того что бы узнать какой город нам выводится можно в любом видном месте сайта поставить следующий div

<div id="user-city"></div>

но это хорошо будет работать при api яндекс 2.0

P.S. Не самое удачное решение)

Вариант № 2

 <script type="text/javascript" >
  $(document).ready(function(){
   
    if($("#city_id").val()){
       var jsonString =  $.getJSON("http://ip-api.com/json/?callback=?",function( data ) {
       var city = (data.city);
      	 if(city == 'Moscow'){
          $("#city_id [value='1']").attr("selected", "selected");
         }
         else if(city == 'Kiev'){
          $("#city_id [value='2']").attr("selected", "selected");
         }
         else {
          $("#city_id [value='0']").attr("selected", "selected");
         }
       });
   }
});    
    
</script>

P.S. Более точное определение города. 

p.p.s узнать город можно перейдя по ссылке http://ip-api.com/json/?callback

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, TopRaN сказал:

Быстрый хак 

Смотрим в админке в справочнике городов ID города.

после в header.tpl вставляем следующее содержимое 


<script type="text/javascript" >
  $(document).ready(function(){
    if($("#city_id").val()){
      ymaps.ready(function(){
         var city = ymaps.geolocation.city;
         $("#user-city").text(ymaps.geolocation.city);
      	 if(city == 'Москва'){
           $("#city_id [value='1']").attr("selected", "selected");
         }
         else(city == 'Киев'){
           $("#city_id [value='2']").attr("selected", "selected");
         }
      });
    }
});    
    
</script>

для того что бы узнать какой город нам выводится можно в любом видном месте сайта поставить следующий div


<div id="user-city"></div>

но это хорошо будет работать при api яндекс 2.0

P.S. Не самое удачное решение)

Вариант № 2


 <script type="text/javascript" >
  $(document).ready(function(){
   
    if($("#city_id").val()){
       var jsonString =  $.getJSON("http://ip-api.com/json/?callback=?",function( data ) {
       var city = (data.city);
      	 if(city == 'Moscow'){
          $("#city_id [value='1']").attr("selected", "selected");
         }
         else if(city == 'Kiev'){
          $("#city_id [value='2']").attr("selected", "selected");
         }
         else {
          $("#city_id [value='0']").attr("selected", "selected");
         }
       });
   }
});    
    
</script>

P.S. Более точное определение города. 

p.p.s узнать город можно перейдя по ссылке http://ip-api.com/json/?callback

а когда есть взаимосвязка  линкенд и депенденд регион-город как сделать?   и на что менять attr  - на свое значение переменной?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
7 минут назад, doma сказал:

а когда есть взаимосвязка  линкенд и депенденд регион-город как сделать?   и на что менять attr  - на свое значение переменной?

Тут более сложный процесс. Нужно будет сначала определять регион, узнавать выбран он или нет, после проводить сверку, и так далее по цепочке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Что-то и по региону у нас не получилось. Делали и так и так. Что-то не выбирается. Что сделали не так?
вот код.
 

<script type="text/javascript" >
  $(document).ready(function(){
   
    if($("#region_id").val()){
       var jsonString =  $.getJSON("http://ip-api.com/json/?callback=?",function( data ) {
       var city = (data.regionName);
           if(region == 'наш регион на английском'){
          $("#region_id [value='8']").attr("selected", "selected");
         }
         else if(city == 'tverskay'){
          $("#region_id [value='2']").attr("selected", "selected");
         }
         else {
          $("#region_id [value='0']").attr("selected", "selected");
         }
       });
   }
});    
    
</script>

А с чего у вас получится?

объявляете var city = (data.regionName);

а потом проверяете  if(region == 'наш регион на английском'){

т.е. задаете одну переменную , а потом пытаетесь задать условие с другой переменной, которую машина не знает

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

чтобы разобраться до конца несколько вопросов

в 

$("#city_id [value='1']").attr("selected", "selected");

value=1  это какое первое значение -
а) значение в нашем справочнике в админке?
б) значение в выпадающем списке?


attr  это универсальный оператор или надо писать свой ?  если свой то какой и откуда он берется?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3 минуты назад, doma сказал:

$("#city_id [value='1']").attr("selected", "selected");

value=1  это какое первое значение -
а) значение в нашем справочнике в админке?
б) значение в выпадающем списке?


attr  это универсальный оператор или надо писать свой ?  если свой то какой и откуда он берется?

а) Да.

б) http://api.jquery.com/attr/

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Только что, TopRaN сказал:

пардон опечатка на самом деле такой код  - но все равно не выбирает. или надо еще attr править?

 

<script type="text/javascript" >
  $(document).ready(function(){
   
    if($("#region_id").val()){
       var jsonString =  $.getJSON("http://ip-api.com/json/?callback=?",function( data ) {
       var region = (data.regionName);
           if(region == ' наш регион'){
          $("#region_id [value='8']").attr("selected", "selected");
         }
         else if(region == 'tverskay'){
          $("#region_id [value='2']").attr("selected", "selected");
         }
         else {
          $("#region_id [value='0']").attr("selected", "selected");
         }
       });
   }
});    
    
</script>

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас