PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (4): « 1 2 [3] 4 »

> Найдено сообщений: 57
masterlelik Отправлено: 07 Ноября, 2013 - 17:47:21 • Тема: Динамическое добавление скрипта • Форум: JavaScript & VBScript

Ответов: 8
Просмотров: 2521
esterio пишет:
удалить перед созданием нужно

получилось вот так
CODE (text):
скопировать код в буфер обмена
  1. var po = document.createElement("script");
  2. po.type = "text/javascript";
  3. po.async = true;
  4. po.src = "http://s7.addthis.com/js/300/addthis_widget.js#pubid=ra-4eed00471e2e3c9a";
  5. if (flag==1) document.getElementsByTagName("head")[0].removeChild(po);
  6. document.getElementsByTagName("head")[0].appendChild(po)
  7. flag=1;


При первом открытии большой картинки ничего не удаляю, начинаю удалять, при втором открытии большой картинки, и выдает на строке с удалением ошибку:
NotFoundError: Node was not found @ /js/start.js:130
masterlelik Отправлено: 07 Ноября, 2013 - 16:26:26 • Тема: Динамическое добавление скрипта • Форум: JavaScript & VBScript

Ответов: 8
Просмотров: 2521
MAXUS пишет:

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. document.getElementsByTagName("head")[0].removeChild(po);
  3.  



перед тем как удалить, объект po создавать аналогично?
var po = document.createElement("script");
masterlelik Отправлено: 07 Ноября, 2013 - 09:32:20 • Тема: Динамическое добавление скрипта • Форум: JavaScript & VBScript

Ответов: 8
Просмотров: 2521
MAXUS пишет:
Попадет туда, где должен расти. В тэг head.

А как затем этот скрипт оттуда удалить?

Это нужно для того, чтобы при открытии новой большой картинки он показал статистику именно для нового урла.
masterlelik Отправлено: 06 Ноября, 2013 - 22:13:30 • Тема: Динамическое добавление скрипта • Форум: JavaScript & VBScript

Ответов: 8
Просмотров: 2521
2MAXUS
Да, скобка в п.2 лишняя.
А насчет п.3 какие есть альтернативы?
masterlelik Отправлено: 06 Ноября, 2013 - 13:47:30 • Тема: Динамическое добавление скрипта • Форум: JavaScript & VBScript

Ответов: 8
Просмотров: 2521
Задача:
есть набор превью картинок, при нажатии на картинку появляется в окно с полным размером. И под фотографией нужно поставить сервис "поделиться".

Пытаюсь поставить сервис addthis, и он отображается только при первом клике на любую картинку, в дальнейшем, сервис отображается в нерабочем виде.
Когда таким же методом подключаю аналогичный сервис (yashare), то все прекрасно работает (но yashare не устраивает). Может есть иной способ достижения цели? При открытии окна добавляю див и тег скрипт, а при закрытии очищаю див и убираю тег скрипт.

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

CODE (javascript):
скопировать код в буфер обмена
  1. function ShowLike(id)
  2. {
  3.         // сначала добавляю служебный див, в который затем скрипт размещает свои кнопки
  4.         document.getElementById(id).innerHTML='<div class="addthis_toolbox addthis_default_style"><a class="addthis_button_preferred_1"></a><a class="addthis_button_compact"></a><a class="addthis_counter addthis_bubble_style"></a></div>');
  5.         var po = document.createElement("script");
  6.         po.type = "text/javascript";
  7.         po.async = true;
  8.         po.src = "http://s7.addthis.com/js/300/addthis_widget.js#pubid=ra-4eed00471e2e3c9a";
  9.         document.getElementById(id).appendChild(po);
  10. }
  11.  
  12. function HideLike(id)
  13. {
  14.         var myNode = document.getElementById(id);
  15.         while(myNode.firstChild != null) myNode.removeChild(myNode.firstChild);
  16.         document.getElementById(id).innerHTML="";
  17. }
masterlelik Отправлено: 25 Августа, 2013 - 23:08:26 • Тема: Проблема jQuery с Opera • Форум: JavaScript & VBScript

Ответов: 7
Просмотров: 2248
[quote=IllusionMH]
masterlelik пишет:
Не срабатывает и нет ошибок в консоли? Да ладно.

я не проверял в консоли, просто заменил на window.onload, чтобы двигаться дальше.

Цитата:
тут уже либо либа не подгрузилась

скорее всего

Цитата:

var jQuery = jQuery.noConflict();
не нужно так делать если хотите использовать переменную jQuery.


А почему не нужно? В документации (http://api[dot]jquery[dot]com/jQuery[dot]noConflict/ ) приведен пример именно такого использования, для создания алиаса.

CODE (htmlphp):
скопировать код в буфер обмена
  1. var j = jQuery.noConflict();
  2. j("div p").hide();


может не нужно использовать именно псевдоним jQuery, а лучше как в примере что-то свое "j"?
masterlelik Отправлено: 25 Августа, 2013 - 22:13:40 • Тема: Проблема jQuery с Opera • Форум: JavaScript & VBScript

Ответов: 7
Просмотров: 2248
IllusionMH пишет:
masterlelik, во первых, в Oпере 12- есть Dragonfly, для начала загляните туда.
Во-вторых, зачем делать window.onload = function() если используется jQuery? Используйте .on()
Ни с одной из этих функций проблем не встречалось.


Начну с во-вторых.
Изначально и использовал $(document).ready(function(){...}) пока не столкнулся с не срабатыванием.

В Dragonfly показывает ошибку:
Unhandled Error: Cannot convert 'jQuery' to object
использую вначале документа (после подключения jQuery)
var jQuery = jQuery.noConflict();
чтобы не было конфликтов с другими возможными скриптами.

Поэтому вижу два выхода: либо обращаться стандартно $("#div").fadeTo вместо
jQuery("#div").fadeTo или как сказал ниже DeepVarvar взять более старую версию jQuery, что также помогло.
masterlelik Отправлено: 25 Августа, 2013 - 21:24:48 • Тема: Проблема jQuery с Opera • Форум: JavaScript & VBScript

Ответов: 7
Просмотров: 2248
Есть код:
window.onload = function()
{
$.ajaxSetup({url: "/test.php", type: "post", dataType: "json"});
alert("test");
};

При многократном обновлении страницы alert то срабатывает, то нет. Т.е. не срабатывает строка с ajaxSetup.
Но вопрос не конкретно в этой функции. Аналогичная проблема с периодическим несрабатыванием и с другими функциями, например, с: $("#div").fadeTo или $("#div").show(100). Такая бага только в опере. Как ее пофиксить?

Версия Opera 12.12
Версия jQuery 1.9.1
masterlelik Отправлено: 22 Июля, 2013 - 14:36:11 • Тема: warning fopen no such file • Форум: Вопросы новичков

Ответов: 3
Просмотров: 188
Да, спасибо, чуть ниже в коде отсекал расширение ".html" и забыл поставить экранирование "\.html".
masterlelik Отправлено: 22 Июля, 2013 - 11:00:56 • Тема: warning fopen no such file • Форум: Вопросы новичков

Ответов: 3
Просмотров: 188
Сразу надо сказать, что на локальном компьютере работает, а ошибка возникает на хостинге.
При попытке открыть файл fopen($path, "rb"); выдает

Warning: fopen(/home/sdsds/public/siteru/download/clients/3/tenders/2/1025148008.doc) [function.fopen]: failed to open stream: No such file or directory in /home/sdsds/public_html/siteru/i ncludes/getfile.php on line 11

Если обратиться по прямому адресу http://site.ru/download/clients/3/tenders/2/1025148008.doc, то файл открывается.
Права на все вложенные папки начиная с папки download (т.е. с корня) поставил вручную 777.

В чем может прятаться подводный камень?
masterlelik Отправлено: 28 Апреля, 2013 - 15:38:09 • Тема: MySQL - Создание запроса при помощи count+having • Форум: SQL и Архитектура БД

Ответов: 19
Просмотров: 151
сразу скажу 2-й запрос находит какие-то "левые" данные. Если в результатах первого выбрано 17 позиций и все они отвечают фильтрам, то второй выгреб аж 707 позиций!!! И кликнув несколько наугад, вижу, что они не отвечают критериям поиска.

1-й запрос
select filter_id, count(distinct filter_id) as cnt from t_filters_variables where ((filter_id=4 and filter_value=8 or filter_id=4 and filter_value=99) or (filter_id=9 and filter_value=10 or filter_id=9 and filter_value=100 or filter_id=9 and filter_value=101)) group by filter_id having cnt>1 limit 0, 15

2-й запрос
select filter_id from t_filters_variables where ((t5.filter_id='4' and t5.filter_value in (8,99)) or (t5.filter_id='9' and t5.filter_value in (10,100,101))) limit 0, 15
masterlelik Отправлено: 28 Апреля, 2013 - 09:03:49 • Тема: MySQL - Создание запроса при помощи count+having • Форум: SQL и Архитектура БД

Ответов: 19
Просмотров: 151
LIME пишет:
Так добавь хэвинг в чем проблема)))
Можешь 3 штуки добавить)) чтоб еще быстрее
...
Индексы проставь


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

Итоги по скорости: с хэвинг запрос выполняется 0.2с, без него от 0.35с до 0.85с.
masterlelik Отправлено: 27 Апреля, 2013 - 23:34:54 • Тема: MySQL - Создание запроса при помощи count+having • Форум: SQL и Архитектура БД

Ответов: 19
Просмотров: 151
И все-таки вариант с хэвинг оказывается лучше.
При количестве записей 30000 этот запрос выполняется 2 секунды (да, не очень здорово)
А вот более простой вариант
SELECT DISTINCT `user_id`, COUNT(*) cnt FROM `t_child` WHERE (`cat_id`='2' AND `value` IN ('1','2')) OR (`cat_id`='1' AND `value`='4') GROUP BY user_id

Запрос подвешивается и в пхпмайдмине оно думает и думает. Минут 5 думало, устал ждать, закрыл. Проверил несколько раз - тупо виснет и все.
masterlelik Отправлено: 26 Апреля, 2013 - 17:14:12 • Тема: MySQL - Создание запроса при помощи count+having • Форум: SQL и Архитектура БД

Ответов: 19
Просмотров: 151
[quote=LIME][/quote]
Проверил, все работает правильно (проверил разные вариации), если есть совпадение по подкатегориям, то находит, если хотя бы один параметр из условия отсутствует, то не находит)

Допустим мне надо выбрать 5 лет и умеющего петь, рисовать и читать.
И если не будет выбран нужный возраст, то ничего не найдет.



(Добавление)

2LIME:
SELECT DISTINCT `user_id`, COUNT(*) cnt
FROM `t_child` WHERE
(`cat_id`='2' AND `value` IN ('1','2')) OR (`cat_id`='1' AND `value`='4')
GROUP BY user_id

Да, это более простое решение, как-то странно, что я уперся в этот хэвингУлыбка
Спасибо.
masterlelik Отправлено: 26 Апреля, 2013 - 12:23:32 • Тема: MySQL - Создание запроса при помощи count+having • Форум: SQL и Архитектура БД

Ответов: 19
Просмотров: 151
nerv пишет:
masterlelik пишет:
1) Вид работ (поле cat_id)

masterlelik пишет:
2) Возраст детей (поле cat_id)

опечатка?

псевдокод
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT user_id
  2. FROM t_child
  3. [ WHERE  (cat_id = selected_category [ AND ... ])
  4. AND ( value = selected_value [ AND ...]) ]


Нет, не опечатка "Вид работ" и "Возраст детей" это значения в другой таблице:
insert into t_types (cat_id, category) values (1, 'Вид работ'), (2, 'Возраст детей'),



(Добавление)
В общем я правильно двигался и решил вопрос.

Сначала не работающий запрос у меня выглядел:
select distinct `user_id`, count(`cat_id`) as cnt from `t_child` where (((`cat_id`='2' and `value`='1') or (`cat_id`='2' and `value`='2')) or ((`cat_id`='1' and `value`='4')) ) group by `t1`.`id` having cnt > 1

Но, если мне надо было найти детей 5 лет, которые умеют и петь, и рисовать.
То он также находил и 10летних детей, потому что было два true в видах работ

И понял, что не хватает distinct в count-е и поставив count(distinct `cat_id`) стало нормально и очень шустро находить.

P.S. если кто-то предложит более красивое решение, буду рад обсудить.

Страниц (4): « 1 2 [3] 4 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB