Jump to content

Torawhite

User
  • Posts

    204
  • Joined

  • Last visited

Everything posted by Torawhite

  1. Да, по каждому клику обновляется значение ячейки (+1) А в <span class="l-count"></span> будет выводится содержимое нужной ячейки. Спасибо! Буду пробовать сейчас. Я так понимаю, что здесь не нужно даже создавать отельно код для клика по конкретной кнопке, всё завязано data-type и ссылках внутри .share_box. Параллельно решил изучить матчасть по js, чтобы хотя бы примерно понимать код Всё работает, спасибо большое! Пришлось добавить ещё одну переменную, чтобы обработчик понимал какую таблицу нужно обновить скрипт $(document).on('click', '.share_box a', function () {var id = <?php echo $row['id'];?>;var table_id = "<?php echo $table_id;?>";var shareType = $(this).data("type");$.ajax({url: "/blocks/share_counter.php",type: "POST",data: ({postVar1: id,postVar2: shareType,postVar3: table_id})});});код обработчика $postVar1 = $_POST['postVar1'];$postVar2 = $_POST['postVar2'];$postVar3 = $_POST['postVar3'];$root = $_SERVER['DOCUMENT_ROOT'];include ($root . "/blocks/gb_tw_mag.php");if ($postVar3 == 'male_table') {if ($postVar2 == vk) {$sql = 'UPDATE male_articles SET share_vk = share_vk + 1 WHERE id = :id';$update_data = $pdo->prepare($sql);$update_data->bindValue(':id', $postVar1);$update_data->execute();}if ($postVar2 == fb) {$sql = 'UPDATE male_articles SET share_fb = share_fb + 1 WHERE id = :id';$update_data = $pdo->prepare($sql);$update_data->bindValue(':id', $postVar1);$update_data->execute();}if ($postVar2 == tw) {$sql = 'UPDATE male_articles SET share_tw = share_tw + 1 WHERE id = :id';$update_data = $pdo->prepare($sql);$update_data->bindValue(':id', $postVar1);$update_data->execute();}}if ($postVar3 == 'female_table') {if ($postVar2 == vk) {$sql = 'UPDATE female_articles SET share_vk = share_vk + 1 WHERE id = :id';$update_data = $pdo->prepare($sql);$update_data->bindValue(':id', $postVar1);$update_data->execute();}if ($postVar2 == fb) {$sql = 'UPDATE female_articles SET share_fb = share_fb + 1 WHERE id = :id';$update_data = $pdo->prepare($sql);$update_data->bindValue(':id', $postVar1);$update_data->execute();}if ($postVar2 == tw) {$sql = 'UPDATE female_articles SET share_tw = share_tw + 1 WHERE id = :id';$update_data = $pdo->prepare($sql);$update_data->bindValue(':id', $postVar1);$update_data->execute();}}if ($postVar3 == 'other_table') {if ($postVar2 == vk) {$sql = 'UPDATE other_articles SET share_vk = share_vk + 1 WHERE id = :id';$update_data = $pdo->prepare($sql);$update_data->bindValue(':id', $postVar1);$update_data->execute();}if ($postVar2 == fb) {$sql = 'UPDATE other_articles SET share_fb = share_fb + 1 WHERE id = :id';$update_data = $pdo->prepare($sql);$update_data->bindValue(':id', $postVar1);$update_data->execute();}if ($postVar2 == tw) {$sql = 'UPDATE other_articles SET share_tw = share_tw + 1 WHERE id = :id';$update_data = $pdo->prepare($sql);$update_data->bindValue(':id', $postVar1);$update_data->execute();}}
  2. Да, по каждому клику обновляется значение ячейки (+1) А в <span class="l-count"></span> будет выводится содержимое нужной ячейки. Спасибо! Буду пробовать сейчас. Я так понимаю, что здесь не нужно даже создавать отельно код для клика по конкретной кнопке, всё завязано data-type и ссылках внутри .share_box. Параллельно решил изучить матчасть по js, чтобы хотя бы примерно понимать код
  3. Это что за издевательство то такое? О.О Покажите ваш html кода с этими кнопками.. Издевательство от незнания. html код: <div class="share_box"><a class="social_share" data-type="vk" title="Поделиться | ВКонтакте" id="share_wrap_vk"><span class="share_logo_vk"></span><span class="share_title">ПОДЕЛИТЬСЯ</span><span class="l-count"></span></a><a class="social_share" data-type="fb" title="Поделиться | Facebook" id="share_wrap_facebook"><span class="share_logo_facebook"></span><span class="share_title">ПОДЕЛИТЬСЯ</span><span class="l-count"></span></a><a class="social_share" data-type="tw" title="Поделиться | Twitter" id="share_wrap_twitter"><span class="share_logo_twitter"></span><span class="share_title">ПОДЕЛИТЬСЯ</span><span class="l-count"></span></a></div>Скрипт, который показывает всплывающее окно шаринга: $(document).on('click', '.social_share', function(){Share.go(this);});Share = {/*** Показать пользователю дилог шаринга в сооветствии с опциями* Метод для использования в inline-js в ссылках* При блокировке всплывающего окна подставит нужный адрес и ползволит браузеру перейти по нему** @example <a href="" onclick="return share.go(this)">like+</a>** @param Object _element - элемент DOM, для которого* @param Object _options - опции, все необязательны*/go: function(_element, _options) {varself = Share,options = $.extend({type: 'vk', // тип соцсетиurl: location.href, // какую ссылку шаримtitle: document.title},$(_element).data(), // Если параметры заданы в data, то читаем их_options // Параметры из вызова метода имеют наивысший приоритет);if (self.popup(link = self[options.type](options)) === null) {// Если не удалось открыть попапif ( $(_element).is('a') ) {// Если это <a>, то подставляем адрес и просим браузер продолжить переход по ссылке$(_element).prop('href', link);return true;}else {// Если это не <a>, то пытаемся перейти по адресуlocation.href = link;return false;}}else {// Попап успешно открыт, просим браузер не продолжать обработкуreturn false;}},// ВКонтактеvk: function(_options) {var options = $.extend({url: location.href,title: document.title}, _options);return 'http://vkontakte.ru/share.php?'+ 'url=' + encodeURIComponent(options.url)+ '&title=' + encodeURIComponent(options.title)+ '&noparse=true';},// Facebookfb: function(_options) {var options = $.extend({url: location.href,title: document.title}, _options);return 'http://www.facebook.com/sharer.php?s=100'+ '&p[title]=' + encodeURIComponent(options.title)+ '&p[url]=' + encodeURIComponent(options.url);},// Твиттерtw: function(_options) {var options = $.extend({url: location.href,title: document.title}, _options);return 'http://twitter.com/share?'+ 'text=' + encodeURIComponent(options.title)+ '&url=' + encodeURIComponent(options.url);},// Открыть окно шарингаpopup: function(url) {return window.open(url,'','toolbar=0,status=0,scrollbars=1,width=640,height=480');}}Он как раз завязан на data-type. Но он ничего не считает. Нужно передать две переменные: одна - идентификатор статьи в базе данный, а вторая - переменную, которая будет нам сообщать, какую кнопку нажали и в каком столбце обновить ячейку в соответствии с идентификатором статьи. С php-фалом обработчиком у меня проблем не возникнет, нужно только передать информацию без перезагрузки страницы. Скрипт выше писался, конечно, не мной.
  4. Пусто, потому что я не знаю, как правильно вписать передачу двух переменных - корректный синтаксис Пусто, потому что я не знаю, как правильно вписать передачу двух переменных - корректный синтаксис. У Вас, так понимаю. там тоже прописана передача только одной переменной - id Предложили мне другой вариант, но довести до ума его не могу пока, чую, что это очень просто, но мне, как человеку далёкому от js на данный момент это сложно. Обработать переменные в обработчике на php для меня уже не сложно. При клике на кнопку у меня передаётся тип данных data-type="" (vk, fb, tw) Можно сделать что-то подобное $(document).ready(function() {var id = "<?php echo $row['id'];?>";$('a[data-type="vk"']).each(function(){$('#share_wrap_vk').on('click', function(){$.post('/blocks/share_counter.php', {id: id,type: 'vk'success: function () {alert(id);});});});});
  5. Пусто, потому что я не знаю, как правильно вписать передачу двух переменных - корректный синтаксис Пусто, потому что я не знаю, как правильно вписать передачу двух переменных - корректный синтаксис. У Вас, так понимаю. там тоже прописана передача только одной переменной - id
  6. Здравствуйте! Необходимо передать две переменные без перезагрузки страницы при клике на элемент, на данный момент код имеет такой вид var id = "<?php echo $row["id"];?>";var count_vk = "1";var count_fb = "1";var count_tw = "1";$(document).ready( function() {$("#share_wrap_vk").click(function(){$.ajax({type: 'POST',url: '/blocks/share_counter.php',data: ""});});$("#share_wrap_fb").click(function(){$.ajax({type: 'POST',url: '/blocks/share_counter.php',data: ""});});$("#share_wrap_tw").click(function(){$.ajax({type: 'POST',url: '/blocks/share_counter.php',data: ""});});});нужно передать id и count_vk документу share_counter.php. count_vk,fb,tw необходимы только для того, чтобы понять, какое поле обновить в таблице базы данных . id получаю при загрузке страницы из бд. Суть скрипта - считать количество кликов на ссылку с конкретным идентификатором
  7. function dataToArray($data) {$array = array();while (($row = $data->fetch()) !=false)$array[] = $row;return $array;}Скорее всего тут дело в том, что я не до конца разобрался, как работают функции. Решил, что функция, описанная, выше, вернёт мне переменную $array через функцию function searchArticles($words) {$query_search = "";foreach ($words as $key => $value) {if (isset($words[$key - 1])) {$query_search .= " OR ";$query_search .= "(title LIKE '%' . $value . '%' OR text LIKE '%' . $value . '%')";}}try {$pdo = new PDO("mysql:host=xxx; dbname=xxxx", "xxx", "xxx");$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);}catch (PDOException $e) {echo "<p>Запрос на выборку данных из бызы не прошёл. Напишите об этом администратору <a href='mailto:admin@torawhite.ru'>admin@torawhite.ru</a>.</p><br>ERROR: " . $e->getMessage();exit;}$sql = 'SELECT * FROM male_articles WHERE :query_search';$data = $pdo->prepare($sql);$data->bindParam(':query_search', $query_search);$data->execute();return dataToArray($data);}где return dataToArray($data); используется в самом низу. Совсем запутался... Видимо, нужно занести результат работы функции в переменную, Вы правы. плюс мне дали почитать про область видимости переменной Возможно, ещё тут где-то напортачил. поэтому мне phpstorm и выдавал ошибку в переменной $pdo, которая была в отдельном файле подключения к Базе данных, пока я всё подключение не перенес в функцию function dataToArray($data) {$array = array();while (($row = $data->fetch()) !=false)$array[] = $row;return $array;}Скорее всего тут дело в том, что я не до конца разобрался, как работают функции. Решил, что функция, описанная, выше, вернёт мне переменную $array через функцию function searchArticles($words) {$query_search = "";foreach ($words as $key => $value) {if (isset($words[$key - 1])) {$query_search .= " OR ";$query_search .= "(title LIKE '%' . $value . '%' OR text LIKE '%' . $value . '%')";}}try {$pdo = new PDO("mysql:host=xxx; dbname=xxxx", "xxx", "xxx");$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);}catch (PDOException $e) {echo "<p>Запрос на выборку данных из бызы не прошёл. Напишите об этом администратору <a href='mailto:admin@torawhite.ru'>admin@torawhite.ru</a>.</p><br>ERROR: " . $e->getMessage();exit;}$sql = 'SELECT * FROM male_articles WHERE :query_search';$data = $pdo->prepare($sql);$data->bindParam(':query_search', $query_search);$data->execute();return dataToArray($data);}где return dataToArray($data); используется в самом низу. Совсем запутался... Видимо, нужно занести результат работы функции в переменную, Вы правы. плюс мне дали почитать про область видимости переменной Возможно, ещё тут где-то напортачил. поэтому мне phpstorm и выдавал ошибку в переменной $pdo, которая была в отдельном файле подключения к Базе данных, пока я всё подключение не перенес в функцию С матчастью у меня проблемы
  8. Здравствуйте! Никак не могу разобраться с циклом foreach. Необходимо перебирать массив, в котором слова поискового запроса и выводить полученные результаты на страницу. Но после всей обработки поискового запроса, функция count() мне выдаёт нулевое значение массива, в котором должны быть извлечены данные, соответствующие поисковому запросу. Код обработчика такой: <?phpif (isset($submit)) {if (empty($query) or strlen($query) < 6) {echo "<div class='search_title_attention'>Поисковый запрос не введён, либо он менее 3-х символов кириллицы<br>или менее 6-ти символов латиницы!</div>";} /*Начало вывода*/else {print_r($query);$words = clearQuery($query);print_r($words);if ($select == 'all') {searchArticles($words);$count = count($array);echo $count;}}}else {echo "<div class='search_title_attention'>Вы обратились к файлу без необходимых параметров!</div>";}?>Функции, которые используются: <?php/*Функция обрезки окончаний слов*/function dropBackWords($word) {$reg = "/(а|я|о|е|ь|и|ы|ая|яя|ое|ее|ый|ать|ять|еть|уть|у|ю|ем|ешь|ете|ет|ут|ют|ал|ял|ала|яла|али|яли|ул|ула|ули)(\s|$)/ui"; //данная регулярная функция будет искать совпадения окончаний$word = preg_replace($reg,'',$word);return $word;}/*Функция уничтожения стоп-слов*/function stopWords($query) { //тут мы обрабатываем весь поисковый запрос$reg = "/(^|\s)(а|без|более|бы|был|была|были|было|быть|в|вам|вас|весь|во|вот|все|всего|всех|вы|где|да|даже|для|до|его|ее|если|есть|еще|же|за|здесь|и|из|или|им|их|к|как|ко|когда|кто|ли|либо|мне|может|мы|на|надо|наш|не|него|нее|нет|ни|них|но|ну|о|об|однако|он|она|они|оно|от|очень|по|под|при|с|со|так|также|такой|там|те|тем|то|того|тоже|той|только|том|ты|у|уже|хотя|чего|чей|чем|что|чтобы|чье|чья|эта|эти|это|я)($|\s)/ui"; //данная регулярка отрежет все стоп-слова отбитые пробелами$query = preg_replace($reg,'',$query);return $query;}/*Функция подготовки поискового запроса*/function clearQuery($query) {$query = stripcslashes($query);$query = htmlspecialchars($query);$words = explode(" ",$query);$words = stopWords($words);$i = 0;$keywords = "";foreach ($words as $word) {$word = trim($word);$regv = '/^([а-я0-9]+)$/i';$count = (preg_match($regv, $word)) ? 6 : 3;if (strlen($word)<$count) {unset($word);}else {if (strlen($word)>8) {$keywords[$i]=dropBackWords($word);$i++;}else {$keywords[$i]=$word;$i++;}}}return $keywords;}function dataToArray($data) {$array = array();while (($row = $data->fetch()) !=false)$array[] = $row;return $array;}function searchArticles($words) {$query_search = "";foreach ($words as $key => $value) {if (isset($words[$key - 1])) {$query_search .= " OR ";$query_search .= "(title LIKE '%' . $value . '%' OR text LIKE '%' . $value . '%')";}}try {$pdo = new PDO("mysql:host=xxx; dbname=xxxx", "xxx", "xxx");$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);}catch (PDOException $e) {echo "<p>Запрос на выборку данных из бызы не прошёл. Напишите об этом администратору <a href='mailto:admin@torawhite.ru'>admin@torawhite.ru</a>.</p><br>ERROR: " . $e->getMessage();exit;}$sql = 'SELECT * FROM male_articles WHERE :query_search';$data = $pdo->prepare($sql);$data->bindParam(':query_search', $query_search);$data->execute();return dataToArray($data);}?>Ещё прошу развеять сомнения насчёт подключения к базе данных - я так понимаю, что подключение нужно обязательно использовать в функции, обозначить подключение вначале самой страницы результатов не даст? echo $count;Выводит 0, а должен найти запись. В поисковый запрос ввожу только то, что точно есть в базе данных.
  9. Похоже, массив нужно прогонять в цикле. Осталось разобраться, как это сделать...
  10. Сейчас вторая проблема - не хочет ничего искать! Например, ввожу в строку поиска - найти то что нужно В обработчике код следующий $words = clearQuery($query);print_r($words);$sql = 'SELECT * FROM male_articles WHERE title LIKE :words1 OR text LIKE :words2';$data = $pdo->prepare($sql);$data->bindValue(':words1', '%' . $words . '%');$data->bindValue(':words2', '%' . $words . '%');$data->execute();$row = $data->fetch();print_r($words);Мне выводит - Array ( [0] => найт [1] => нужн ) То есть функция, описанная выше работает. Но поиск не даёт результатов! Если переменной $words присвоить поисковый запрос, то всё ищет! Почему такое может быть?
  11. Спасибо! Подправил, это была не одна проблема. Так всё работает, пока... <?php/*Функция обрезки окончаний слов*/function dropBackWords($word) {$reg = "/(а|я|о|е|ь|и|ы|ая|яя|ое|ее|ый|ать|ять|еть|уть|у|ю|ем|ешь|ете|ет|ут|ют|ал|ял|ала|яла|али|яли|ул|ула|ули)(\s|$)/ui"; //данная регулярная функция будет искать совпадения окончаний$word = preg_replace($reg,'',$word);return $word;}/*Функция уничтожения стоп-слов*/function stopWords($query) { //тут мы обрабатываем весь поисковый запрос$reg = "/(^|\s)(а|без|более|бы|был|была|были|было|быть|в|вам|вас|весь|во|вот|все|всего|всех|вы|где|да|даже|для|до|его|ее|если|есть|еще|же|за|здесь|и|из|или|им|их|к|как|ко|когда|кто|ли|либо|мне|может|мы|на|надо|наш|не|него|нее|нет|ни|них|но|ну|о|об|однако|он|она|они|оно|от|очень|по|под|при|с|со|так|также|такой|там|те|тем|то|того|тоже|той|только|том|ты|у|уже|хотя|чего|чей|чем|что|чтобы|чье|чья|эта|эти|это|я)($|\s)/ui"; //данная регулярка отрежет все стоп-слова отбитые пробелами$query = preg_replace($reg,'',$query);return $query;}/*Функция подготовки поискового запроса*/function clearQuery($query) {$query = stripcslashes($query); $query = htmlspecialchars($query);$words = explode(" ",$query);$words = stopWords($words);$i = 0;$keywords = "";foreach ($words as $word) {$word = trim($word);$regv = '/^([а-я0-9]+)$/i';$count = (preg_match($regv, $word)) ? 6 : 3;if (strlen($word)<$count) {unset($word);}else {if (strlen($word)>8) {$keywords[$i]=dropBackWords($word);$i++;}else {$keywords[$i]=$word;$i++;}}}return $keywords;}?>
  12. Здравствуйте! Подготавливаю поисковый запрос для выборки данных из базы данных оператором LIKE Суть чистки в обрезании окончаний, уничтожению стоп-слов, спец. символов и прочего. Функции-самописки имеют вид: <?php/*Функция обрезки окончаний слов*/function dropBackWords($word) { //тут мы обрабатываем одно слово$reg = "/(а|я|о|е|ь|и|ы|ая|яя|ое|ее|ый|ать|ять|еть|уть|у|ю|ем|ешь|ете|ет|ут|ют|ал|ял|ала|яла|али|яли|ул|ула|ули)$/i"; //данная регулярная функция будет искать совпадения окончаний$word = preg_replace($reg,'',$word); //убиваем окончанияreturn $word;}/*Функция уничтожения стоп-слов*/function stopWords($query) { //тут мы обрабатываем весь поисковый запрос$reg = "/\s(а|без|более|бы|был|была|были|было|быть|в|вам|вас|весь|во|вот|все|всего|всех|вы|где|да|даже|для|до|его|ее|если|есть|еще|же|за|здесь|и|из|или|им|их|к|как|ко|когда|кто|ли|либо|мне|может|мы|на|надо|наш|не|него|нее|нет|ни|них|но|ну|о|об|однако|он|она|они|оно|от|очень|по|под|при|с|со|так|также|такой|там|те|тем|то|того|тоже|той|только|том|ты|у|уже|хотя|чего|чей|чем|что|чтобы|чье|чья|эта|эти|это|я)\s/gim"; //данная регулярка отрежет все стоп-слова отбитые пробелами$query = preg_replace($reg,'',$query); //убиваем стоп-словаreturn $query;}/*Функция подготовки поискового запроса*/function clearQuery($query) {$query = stripcslashes($query); //удаляем экранирующие бэкслэши$query = htmlspecialchars($query); //преобразуем специальные символы в HTML-сущности$query = stopWords($query); //используем написанную нами ранее функцию для удаления стоп-слов$words = explode(" ",$query); //разбиваем поисковый запрос на слова через пробел и заносим все слова в массив$i = 0; //устанавливаем начало массива в 0, помним что нумерация в массивах начинается с 0$keywords = ""; //создаем пустой массивforeach ($words as $word) { //в цикле для массива words создаем элемент word$word = trim($word);if (empty($word) or strlen($word)<6) { //если слово короче 6 символов или пустое то выводимecho "<div class='search_title_attention'>Поисковый запрос не введён, либо он менее 3-х символов!</div>";}else { //иначе выполняем следующееif (strlen($word)>8) {$keywords[$i]=dropBackWords($word); //наша функция чистки окончаний для слов длинее 8 символов и занесение их в созданный нами массив$i++; //наращиваем значение i для того чтобы перейти к следующему элементу}else {$keywords[$i]=$word; //если короче 8 символов то просто добавляем в массив$i++;}}}return $keywords; //возвращаем полученный массив}?>Выходит ошибка: Warning: preg_replace() [function.preg-replace]: Unknown modifier 'g' in /home/virtwww/w_torawhite-ru_404794df/http/blocks/functions.php on line 15 15-я строка - $query = preg_replace($reg,'',$query); //убиваем стоп-слова Не могу понять в чём ошибка. Помогите, пожалуйста, разобраться с ошибкой.
  13. Возможно я ошибаюсь, но мне кажется что вы не пробовали открывать вашу svg картинку в текстовом редакторе? Попробуйте, вы увидите что она состоит из тегов, как и html страница. И вот в самой вашей картинке иллюстратор должен поставить в тег svg соответствующие ширину и высоту. По этому по приведенному мной примеру выше вы можете позиционировать ее свойством background-position как обычное растровое изображение. P.S. Размеры изображения в любом векторном файле (как и в растровом) обязательно должны быть (и он равны размеру холста). Отличие холста в растровых изображениях от векторных в том что в растровых все что было нарисовано за границами холста безвозвратно теряется, а в векторных сохраняется. А так какие-либо размеры "видимого пространства" должны иметь все типы изображений. Вы правы, не открывал. Сейчас открыл: <svg version="1.1" id="Слой_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"Иллюстратор ничего не проставил (x="0px" y="0px) Спасибо за наводку, теперь буду знать, что размеры нужно проставлять вручную. Только имейте в виду, что атибуты x и y отвечают за расположение элемента (я правда не знаю для чего они нужны в корневом svg, там можно любые цифры поставить и вроде ничего не должно изменится), а для задания ширины и высоты используются атрибуты width и height (вручную допишите). Всё понял, спасибо!
  14. Спасибо огромное! То, что нужно! А я уже было собрался скрипт писать под это дело... Я ж те уже скинул решение выше: http://jsfiddle.net/Roland5858/cb7kLec3/ В примере Switch74 так же, но последний стиль удалить нужно - он не имеет смысла. Ваша ссылка на тот момент не открывалась, пробовал не раз - выдавало ошибку. Сейчас открылась. Спасибо!
  15. Возможно я ошибаюсь, но мне кажется что вы не пробовали открывать вашу svg картинку в текстовом редакторе? Попробуйте, вы увидите что она состоит из тегов, как и html страница. И вот в самой вашей картинке иллюстратор должен поставить в тег svg соответствующие ширину и высоту. По этому по приведенному мной примеру выше вы можете позиционировать ее свойством background-position как обычное растровое изображение. P.S. Размеры изображения в любом векторном файле (как и в растровом) обязательно должны быть (и он равны размеру холста). Отличие холста в растровых изображениях от векторных в том что в растровых все что было нарисовано за границами холста безвозвратно теряется, а в векторных сохраняется. А так какие-либо размеры "видимого пространства" должны иметь все типы изображений. Вы правы, не открывал. Сейчас открыл: <svg version="1.1" id="Слой_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"Иллюстратор ничего не проставил (x="0px" y="0px) Спасибо за наводку, теперь буду знать, что размеры нужно проставлять вручную.
  16. Но Вы же указываете базовый размер svg-изображения в самом теге <svg>, по аналогии с тегом <img>, но я имею ввиду, когда, например, у меня есть svg-картинка, которая включает в себя 2 иконки и расположены они по оси Y. Размер в adobe illustrator при сохранении установлен: 50px - ширина и 100px - высота. Картинка должна находится у левого края блока и иметь background-position: 0 0; а при наведении background-position: 0 -50px; - получаем нижнюю часть картинки
  17. Так просто и лаконично! Проблема решилась! Спасибо! Был там, но для моего варианта решения не нашёл. Спасибо, что отозвались!
  18. Здравствуйте! Есть код типа: HTML: <a></a>CSS: a {display:block;width: 50px;height: 100px;background: #2b2b2b url(/some_image1.svg) no-repeat;background-size: contain;background-position: left;}a:hover {background: #000000 url(/some_image2.svg) no-repeat;}Суть в том, что картинка svg - простая однотонная иконка с прозрачным фоном, при наведении нужно изменить её цвет, но если это реализовать с помощью смены картинки на такую же, только другого цвета, смена происходит с задержкой. Изображение исчезает, а через секунду появляется другое. Так происходит только первый раз, потом картинка, видимо, попадает в кэш браузера и смена происходит без задержки, но задержка при первой смене бросается в глаза. Картинка имеет вес всего 1кб, но тем не менее задержка происходит. Поместить две иконки в один svg и изменять просто позицию, как с png, так понимаю не выйдет, так как svg не имеет разрешения. Находил варианты с фильтром fill, но там реализация не в качестве background, а отдельно, причём в теге <svg>. Как можно решить данную проблему?
  19. Спасибо огромное! То, что нужно! А я уже было собрался скрипт писать под это дело...
  20. .class_1 span:hoverэто не нужно, т.к. невозможно навести на span не наведя на .class_1 Дело в том, что в диве есть картинка фоновая, а в span - текст. Через бордер не выйдет
  21. Здравствуйте! Есть код типа: HTML: <div class="class_1"> <span></span></div>CSS: .class_1 {display: block;width: 40px;height: 40px;background-color: #2b2b2b;}.class_1:hover {background-color: #000000;cursor: pointer;}.class_1 span {display: block;width: 20px;height: 20px;float: right;margin-top: 10px;margin-bottom: 10px;background-color: #aaaaaa;}.class_1 span:hover {background-color: #ffffff;cursor: pointer;}Для наглядности http://jsfiddle.net/3bbb980k/ Как можно сделать, чтобы при наведении на родительский div выполнялся свой hover и у div, и у дочернего span?
  22. Здравствуйте! Времени не было попробовать. Спасибо за ответ! Не помогло, ничего не ищет, причем даже без переменной - просто вставляю конкретное слово в запрос, которое есть в тексте - результата нет. Полнотекстовые индексы у данных столбцов я проставил.
  23. Здравствуйте! Пишу поиск по базе данных с помощью оператора LIKE. Не могу понять где я ошибся, выборку делаю через PDO. В PHP я начинающий, возможно я не так понял синтаксис: Не совсем ясно значение "%" и "?". % - подразумеваю, чтобы запрос искался, как часть слова. А "?", возможно, переменная. Выборку делаю таким образом: $search = trim($search);$search = stripcslashes($search);$search = htmlspecialchars($search);$sql = 'SELECT * FROM female_articles WHERE title OR text LIKE :search';$data = $pdo->prepare($sql);$data->bindValue (':search', $search);$data->execute();$row = $data->fetch();Весь код обработчика: <?php $root = $_SERVER['DOCUMENT_ROOT']; include ($root . "/blocks/gb_tw_mag.php"); if (isset($_POST['search'])) { $search = $_POST['search']; } if (isset($_POST['search_select'])) { $search_select = $_POST['search_select']; } if (isset($_POST['search_submit'])) { $search_submit = $_POST['search_submit']; }?><!doctype html><html><head><meta charset="utf-8"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta name="description" content="Журнал о стиле и образе жизни"><meta name="keywords" content="Журнал, мужской журнал, женский журнал, интернет-журнал"><title>Torawhite.ru - Store & Magazine | Журнал | Результаты поиска</title> <?php include ($root . "/blocks/favicon.php"); ?><!--Таблицы стилей--><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/reset.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/input_reset.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/main.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/fonts.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/header.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/magazine/magazine_css/magazine_left_sidebar.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/magazine/magazine_css/article_block.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/magazine/magazine_css/magazine_right_sidebar.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/magazine/magazine_css/top_nav_magazine.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/bottom_nav.css"><link rel="stylesheet" type="text/css" href="http://www.torawhite.ru/css/footer.css"> <?php include ($root . "/magazine/magazine_blocks/magazine_scripts_head.php"); ?></head><body> <div class="wrapper"> <?php include ($root . "/blocks/header.php"); include ($root . "/magazine/magazine_blocks/top_nav_magazine.php"); ?> <div class="magazine_container"> <?php include ($root . "/magazine/magazine_blocks/magazine_left_sidebar.php"); ?> <div class='article_block_box'> <?php if (isset($search_submit) AND $search_select == 'all') { if (empty($search) or strlen($search) < 4) { echo "<div class='search_title_attention'>Поисковый запрос не введён, либо он менее 4-х символов!</div>"; } else { $search = trim($search); $search = stripcslashes($search); $search = htmlspecialchars($search); $sql = 'SELECT * FROM female_articles WHERE title OR text LIKE :search'; $data = $pdo->prepare($sql); $data->bindValue (':search', $search); $data->execute(); $row = $data->fetch(); if ($data->rowCount() > 0) { while ($row = $data->fetch()) { if ($row["cat"] == 1) { $catb = 'Стиль'; $cat_link = 'http://torawhite.ru/magazine/male_articles/style/'; } elseif ($row["cat"] == 2) { $catb = 'Спорт'; $cat_link = 'http://torawhite.ru/magazine/male_articles/sport/'; } elseif ($row["cat"] == 3) { $catb = 'Питание'; $cat_link = 'http://torawhite.ru/magazine/male_articles/diet/'; } else { $catb = 'Бизнес'; $cat_link = 'http://torawhite.ru/magazine/male_articles/business/'; } printf(" <div class='article_block'> <div class='cover_img'><a href='$cat_link' target='_self' title='Перейти в рубрику'>$catb</a></div> <a href='view_article.php?id=%s' target='_self' title='%s'><img src='%s' width='640'></a> <div class='article_block_name'> <p><a href='view_article.php?id=%s' target='_self'>%s</a></p> </div> <ul class='article_block_date'> <li> %s | </li> </ul> <ul class='article_block_author'> <li> <a href='%s' target='_self'>%s</a> </li> </ul> <ul class='article_block_eye_box'> <li> <img src='http://www.torawhite.ru/images/eye.svg' align='middle'> %s </li> </ul> <div class='article_block_text'> %s </div> <div class='article_block_full_story'> <a href='view_article.php?id=%s' target='_self'>Читать полностью</a> </div> </div>", $row["id"], $row["title"], $row["article_img"], $row["id"], $row["title"], $row["article_date"], $row["author_link"], $row["author"], $row["view"], $row["description"], $row["id"]); } } else { echo "<div class='search_title'>По Вашему запросу статей не найдено</div>"; } } } else { echo "<div class='search_title_attention'>Вы обратились к файлу без необходимых параметров!</div>"; } ?> </div> <?php include ($root . "/magazine/magazine_blocks/magazine_right_sidebar.php"); ?> <div class="clear"></div> </div> <?php include ($root . "/blocks/bottom_nav.php"); include ($root . "/blocks/footer.php"); ?> </div><?php include ($root . "/blocks/scripts_body.php");?></body></html>В итоге мне сразу выдаёт: else { echo "<div class='search_title'>По Вашему запросу статей не найдено</div>"; }Хотя текст запроса в базе имеется точно! Прошу Вас помочь разобраться.
  24. Спасибо большое Вам! То, что было нужно!
  25. Здравствуйте! Каким образом можно реализовать select, как у Amazon? Суть такая, есть код: <div class="search_wrap"> <form> <div> <select> <option value="1">Позикия</option> <option value="2">Какая-то позиция</option> <option value="3">Ещё позиция</option> </select> </div> <input type="search"> <div> </div> <div> <input type="submit"> </div> </form></div>Элементы расположены в одну строку. Необходимо, чтобы при выборе позиции из селекта, его ширина увеличивалась или уменьшалась в зависимости от выбранного текста, также и строка поиска изменяла свою ширину. У Amazon сделан так поиск
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy