[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Динамический атрибут TITLE - как исполнить?
exotica
Доброго времени суток, сразу скажу, что я нуб в сфере PHP - только разбираюсь. HTML и CSS освоил вполне свободно, а вот php есть вопросы))

Вообщем есть для многих тегов свойство title="" , дак вот собственно вопрос в том, а можно ли значение этого свойства сделать динамическим???
Допусти есть следующий код:
<p> Это обычный текст, который я использую в <span class="think-title" title="..$newtitle..">HTML</span> примерах</p>


Арфографию не судите строго, пытаюсь донести мысль. Значит здесь в обычном параграфе с помощью тега SPAN я указал для куска текста "HTML" класс think-title, и у казал атрибут title равный переменной $newtitle.

С классом все понятно - через CSS указываем то как хотим чтоб выглядел наш текст. Самое интересное с атрибутом title.

Как сделать чтобы переменной $newtitle присваивалось определенное значение, в зависимости от заключеного в тег SPAN текста??

_____________
[FAQ]Регистрации пользователей, сохранение в БД
---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
Invis1ble
Ввел в ступор...
переформулируй как-нибудь, ибо непонятно, что хочешь сделать.

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

exotica
Так... эммм. сейчас попробую. Давайте пошагово

Значит у нас есть следующие слова: яблоки, апельсины, огурец

Есть следующий текст:
"Моя сестра очень любит есть яблоки если они свежие"

Делаем код:

<p>Моя сестра очень любит есть <span title="apple (англ.) - яблоко">яблоки</span> если они свежие</p>


Т.е. при наведении курсора на слово apple видим подсказку: "apple (англ.) - яблоко"

Идем далее....

Допустим есть переменная $newtitle, ей мы присваиваем значение в зависимости от того слово которое выделили в теги SPAN, т.е.

Если:
<p>Моя сестра очень любит есть <span title="..$newtitle..">яблоки</span> если они свежие</p>

То:
$newtitle = "apple (англ.) - яблоко";



Если:
<p>Моя сестра очень любит есть <span title="..$newtitle..">апельсины</span> если они свежие</p>

То:
$newtitle = "orange (англ.) - апельсин";



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

_____________
[FAQ]Регистрации пользователей, сохранение в БД
---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
Invis1ble
Теперь понятно.
Вариантов решения несколько. Я бы сделал примерно так:
<?php
$array = array(
'яблоки' => 'apple (англ.) - яблоко',
'апельсины' => 'orange',
);

$word = 'апельсины';
?>
<p>
Моя сестра очень любит есть <span title="<?php echo $array[$word] ?>"><?php echo $word ?></span> если они свежие</p>

Читай документацию. Изучай массивы.

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

exotica
Цитата
Читай документацию. Изучай массивы.

С документацией с удовольствием ознакомлюсь, она не первая и она же не последняя, спасибо за рекомендацию.

Но опять же это давольно громоздко согласитесь. Суть идеи в том чтобы какраз таки сделать минималльное выражение, которое легко добавить во время написания статьи или ответа или коментария:

вот создал я статью с содержанием:
<p> Это пример обыкновенного текста</p>



вот я создал эту же статью только допустим вышеописанное реализовано бб-кодом:
<p> Это пример [title]обыкновенного[/title] текста</p>


и после того как новость попала в БД и после этого была выведена на сайт для слова "обыкновенного" автоматически присвоилась подсказка равная значению в массиве.

Понимаете о чем я? Все значения для массива заданы заранее, а во время написания статей необходимо указать ключевое слово заключеное в специальный тег.

Задача сделать это максимально просто)


_____________
[FAQ]Регистрации пользователей, сохранение в БД
---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
exotica
theme up! Появились новые соображения по объяснению момента. :rolleyes:

Пишу я вот такой текст значит:
Сегодня я хочу съесть не апельсин, как обычно, а зеленое яблоко

При выводе в браузер соответственно мы получим эту же строку. Идем далее.

Мне хочется чтобы после отправления этого текста в базу к определенным словам были присвоены соответствующие title(подсказки при направлении курсора). Хочу реализовать это с помощью допустим двух тегов <t> и </t> т.е. наша запись станет выглядеть следующим образом:
Сегодня я хочу съесть не <t>апельсин</t>, как обычно, а <t>зеленое яблоко</t>


Предполагаю такую логику:
  • текст с наличием тегов <t> и </t> отправляется в базу кнопкой сохранения вормы <input type="submit" ...>
  • функция или отдельный скрипт перехватывает эту строку и выдергивает из нее слова заключенные в теги <t> и </t> - это слова "апельсин", "зеленое яблоко"
  • сравнивает эти слова со значением массива $fruits в котором к каждому фрукту прикреплено описание.
  • Если скрипт находит точное совпадение он заменяет слова на <span title="<?php $arrtitle[1] ?>">апельсин</span> и <span title="<?php $arrtitle[2] ?>">зеленое яблоко</span>
  • отправляем в БД
Наша строка отправляется в базу вот в таком виде:
Сегодня я хочу съесть не <span title="<?php $arrtitle[1] ?>">апельсин</span>, как обычно, а <span title="<?php $arrtitle[2] ?>">зеленое яблоко</span>


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

Не пинать плз) пока решения не нашел, но в ходе изучения как видите хоть логика мне понятна стала.. вопрос насколько реально сделать? и с чем стоит ознакомится?

_____________
[FAQ]Регистрации пользователей, сохранение в БД
---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
Игорь_Vasinsky
ВОт такое можно

 $titles = array(
"яблоко"=>"Зелёное яблоко",
"апельсин"=>"Сладкий апельсин",
"банан"=>"Банан из самой африки"
);


 $str = "Сегодня я хочу съесть не <t>апельсин</t>, как обычно, а <t>зеленое яблоко</t>";

echo preg_replace("#<t>(.*)</t>#isU", '<t title="'.$titles["$1"].'">$1</t>',$str);


тока у меня щас не получилось завести

$titles["$1"]


чтоб $1 как ключ массива отработал

на работе, некогда

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
exotica
хмм) я чтото про preg_replace не подумал даже. Попробую поковырять, выложу то что получится

_____________
[FAQ]Регистрации пользователей, сохранение в БД
---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.