Клуб API Карт

как отображать ссылки в метках

bratyxa-servis
13 января 2013, 23:55

Привет всем может я немного не по теме, но у меня почемe-то неотображаются ссылки в самой заметке. Точнее вообще ничего не показывает, если есть ссылка. Я пытаюсь выводить данные из бд и формирую ссылки, но сталкнулся с такой проблемой. Зарание большое спасибо

14 комментариев
Подписаться на комментарии к посту

Возможно, если Вы приведете фрагмент кода или дадите ссылку на свою карту, ответить на Ваш вопрос будет легче :)

Чтоб я толком знал что где как в общем я скачал пример с горем пополам под себя подогнул с php у меня проблем нет я Вам дам ссылку где я скачал этот пример и там все на страничке разложено, если Вам не трудно - вот ссылка

http://webmap-blog.ru/yandex-maps/yandeks-karta-na-vashem-sajte-s-vozmozhnostyu-dobavleniya-metok-polzovatelyami-api-yandeks-kart-v2-x-prodolzhenie

сам js я не менял а  в php с другой таблицы данные выводил и пытился формировать ссылки. Зарание большое спасибо

если я правильно поняла, где-то в поле balloontextу Вас содержится гиперссылка, и когда она передается в метку, содержимое балуна не отображается?

Включена ли у Вас фильтрация тегов? (как в примере) Если да, то скачали и подключили ли Вы сам файл со классом фильтра? (html_filter_class.php)

Если балун не фильтруется, посмотрите в отладчике, что именно забирает из php части запрос $.getJSON("vivodpointsmap.php"...

и корректно ли сформирован json.markers[i].balloontext (если ссылка у Вас именно в balloontext). Иногда бывает элементарно не хватет где-нибудь закрывающей кавычки или запятой (сама у себя часто на такое нарываюсь)

Он то подключается только там где он заносит в бд, А там где идет вывод нет. Хранить данные в бд с тегами я не могу а мне надо как-то преобразовать, когда я вывел данные из базы, я просто пока немного не разобрался как именно работает фильтр но как я понял это делается примерно так

$href = 'О нас';

$balloonText = $html_filter->filter($href);

ну и естественно подключив файлсамого фидльтра. Если я чего не упустил. Жду Вашего ответа.

Ладно, бог с ним с фильтром. Полагаю, Вы проверяли, что в БД заносится то, что надо. (хотя я не пойму ремарки, что хранить теги в БД Вы не можете, тогда какой смысл их фильтровать?). Предполагаю тогда, что в тег гиперссылки сам адрес ссылки оборачивается при подготовке ответа из php (или Вы делаете по-другому?)

В данный момент интересно понять, какой именно результат json запроса поступает Вам назад в карту. Вы можете глянуть в отладчике, что именно Вам приходит? Возможно он все-таки с ошибками? (Если Вы не совсем уверены, как пользоваться отладчиком, напишите какой у Вас браузер, возможно, я смогу подсказать)

Сейчас я все подробненько опишу. У меня есть страничка на которой пользователь заполняет формы. Затем он указывает точку на карте, на этом этапе от карты требуется лишь кардинаты широты и долготы. Это все отправляется в базу. Теперь мне надо вывести эти данные на карту с кардинатами понятно, с подсказкой то же. А вот в  тексте балуна мне надо сделать ссылку. Я дастаю данные из базы. В обычном случае в цикле  я формирую ссылку вот так

$href=''.$mar['order_title'].'';

так как мне правильнол занести этот результат в массив что бы балун отображал ссылку?

прямо какой-то квест получается "разгадай код оппонента" :)

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

while ($mar = mysql_fetch_array($result))
{
$json =  array(icontext=>$mar['iconText'], hinttext=>$mar['hintText'], balloontext=>$mar['balloonText'], styleplacemark=>$mar['stylePlacemark'], lat=>$mar['lat'], lon=>$mar['lon']);
$markers[] = $json;
}
то надо внести исправления
while ($mar = mysql_fetch_array($result))
{
$href=''.$mar['order_title'].'';
$json =  array(icontext=>$mar['iconText'], hinttext=>$mar['hintText'], balloontext=>$href, styleplacemark=>$mar['stylePlacemark'], lat=>$mar['lat'], lon=>$mar['lon']);
или
$json =  array(icontext=>$mar['iconText'], hinttext=>$mar['hintText'], balloontext=>$mar['balloonText'].$href, styleplacemark=>$mar['stylePlacemark'], lat=>$mar['lat'], lon=>$mar['lon']);

$markers[] = $json;
}

сама по себе строка $href=''.$mar['order_title'].'';
корректна, у меня в балун она вносится нормально

прямо какой-то квест получается "разгадай код оппонента" :) - старался как мог :)

А так все работает:-O

Еще вопросик со стилями  не должно быть проблем или заморочки есть свои?

стили чего? если страницы (css), то в этом я не сильна :-(

если стили метки - то либо надо использовать стандартные пресеты и передавать/возвращать значения типа twirl#redStretchyIcon, либо не забыть описать собственные

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

Стили текста балуна, ну там ссылку сместить, поменять цвет, так по мелочи Вы мне еще вот что подскажите

Вот я пытаюсь сделать что бы карта открывалась по ip пользователя, нашел инструкцию подставил вот так

//Определение начальных параметров карты
        function init () {
        myMap.geoObjects.add(
    new ymaps.Placemark(
        [ymaps.geolocation.latitude, ymaps.geolocation.longitude],
        {
            balloonContentHeader: ymaps.geolocation.country,
            balloonContent: ymaps.geolocation.city,
            balloonContentFooter: ymaps.geolocation.region
        }
    )
);

            Но ничего не выходит карта даже не открывается, синтаксических ошибок нет.

раньше там было вот это

var myMap = new ymaps.Map("map", {
                    center: [56.326944, 44.0075],
                    zoom: 13
                }, {
                    balloonMaxWidth: 600
                });
           

В чем может быть проблема. Зарание большое спасибо
          

если Вы убрали

var myMap = new ymaps.Map("map", {
                    center: [56.326944, 44.0075],
                    zoom: 13
                }, {
                    balloonMaxWidth: 600
                });

и вместо этого вписали свой код, то проблема именно в этом, поскольку сначала надо карту создать (var myMap именно это и делает), а потом наносить на нее метку.

Если Вас не устраивают координаты центровки карты, то в

center: [56.326944, 44.0075], вместо этих цифр подставьте результаты геолокации

:-Oточно все работает

спасибо

 

вот и хорошо

касательно стилей балуна - сама не разбиралась, пока не было необходимости.

но посмотрите исходный код этих примеров, возможно это наведет Вас на какие-то интересные идеи

http://api.yandex.ru/maps/doc/jsapi/2.x/examples/balloontemplate.html

http://api.yandex.ru/maps/doc/jsapi/2.x/examples/balloonlayout.html

Уже и неудобно спрашивать, а как можно сделать только одну метку на карте, помните я Вам рассказывал, что пользователь должен отметить на карте точку, но она должна быть одна. Что бы пользователь выбрал точку, а потом, есле передумал, установил новую, а старая с карты исчезла. конечно у меня все равно обрабатывает только последний метку, но некрасиво когда две или больше меток стоит, а кардинаты учитываются только последние. Зарание большое спасибо