А еще в php есть такая фишка
$array3 = $array1 + $array2;
:)---------- Добавлено 23.06.2015 в 16:51 ----------Однако тут явно была оказана помощь в изготовлении костылей, ибо диагноз: нарушение нормализации.
Не поможет. У него индекс не скрывается, поэтому урлы нельзя чепушить. Покажу свой
Options -Indexes # чтоб по адресу папки без индекса нельзя было посмотреть ее содержание <IfModule mod_rewrite.c> RewriteEngine On # вкл RewriteBase / RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L] # это редирект с ввв на без-ввв RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f RewriteRule \.(jpg|png|gif) assets/images/noimage.png [NC,L] # тут указываете путь до картинки которая покажет нет-фото RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php/$1 [L] # а тут скрывается index.php и вся работа в скрипте идет с path </IfModule>
Потому что остальные методы потребуют переноса в хтассесс всех сущностей из вашей бд и моделей и тп. Файл будет зело огромен и лайя. А path переносит всю логику роутера внутрь скрипта. ---------- Добавлено 23.06.2015 в 12:00 ---------- UPD, не индекс не скрывается, а индекс не скрывается как обычно это для чпу на базе роутера-контроллера в скрипте.
Чтобы не маятся избегать спец-символов, используйте одинарные кавычки
echo '<a href="/',$strsil,'">',$strsil,'</a>';
Нашел хорошую метафору юзабилити - вооружения. Любое оружие должно стрелять в руках даже очень тупого бойца. Даже такое как Бук.
Ну повешайте на load документа этот кусок где Confirm определяется. Или надо его переписать чтобы он сам по load инициализировался.
Тогда у меня свой вопрос - вы же новичок, да? Кто вас научил этой ереси - избегать js в хтмле? Тем самым вы сильно будете осложнять жизнь. Посмотрите как устроена страница на сайте google.com и убедитесь что в лучших доман Ландона js находится именно в хтмле и именно там, где нужен.---------- Добавлено 23.06.2015 в 07:45 ----------Хорошо, вот такой пример. Допустим у вас есть тележка - список заказов. Коню ясно что обновляется она через js. Ну да, вы можете по кукам ее сразу сгенерить с сервера, для начала. А можете не генерить, ибо куки - те же самые на клиенте. Но тогда обновить элемент вы должны как только так сразу, иначе получится что страница загрузится, а список все еще пуст, потом бамц - появилось. Только положив js сразу за хтмлей корзины вы можете ее обновить немедленно.---------- Добавлено 23.06.2015 в 08:41 ----------Для самоинициализации делается так, по простому:
var Confirm=(function() { /* забиваем в скоп привата все переменные, пустышки */ var dlg,bty,btn,title,hide_dlg=function(){dlg.className=''},yCallback,nCallback, /* и пишем функцию которая их наполнит смыслом */ init=function(){ dlg = document.getElementById('hidden'), bty = document.getElementById('yes'), btn = document.getElementById('no'), title=document.getElementById('warn-title'); dlg.addEventListener('click',function(e){e.stopPropagation}); bty.addEventListener('click',function(e){hide_dlg();if(yCallback) yCallback();}); btn.addEventListener('click',function(e){hide_dlg();if(nCallback) nCallback();}); }; /* и запускаем отложенную инициализацию после загрузки документа */ window.addEventListener('load',init); return function(title,yesCallback,noCallback){ yCallback=yesCallback; nCallback=noCallback; title.textContent=title; dlg.className = 'substrate'; };})();
Слушать надо .product-grid и затем разбираться через target кого именно кликнули.---------- Добавлено 23.06.2015 в 07:24 ----------Да, и вот эта строчка
$('.product-list > div').each(function(index, element) {
бред.
Ибо product-list сам все можете перелопатить при условии что все данные загружены.
Собственный confirm может работать только через callback функции. ---------- Добавлено 23.06.2015 в 06:48 ---------- Примерно вот так, по вашему исходнику
var Confirm=(function() { var dlg = document.getElementById('hidden'), bty = document.getElementById('yes'), btn = document.getElementById('no'), title=document.getElementById('warn-title'), /* span не нужен */ hide_dlg=function(){dlg.className=''}, yCallback, nCallback; dlg.addEventListener('click',function(e){e.stopPropagation}); bty.addEventListener('click',function(e){hide_dlg();if(yCallback) yCallback();}); btn.addEventListener('click',function(e){hide_dlg();if(nCallback) nCallback();}); return function(title,yesCallback,noCallback){ yCallback=yesCallback; nCallback=noCallback; title.textContent=title; dlg.className = 'substrate'; }; })(); /* пример применения где-то в контексте имеется table и определена строка r */ Confirm('Товар будет удален из заказа. Продолжить?',function(){ table.deleteRow(r.rowIndex); do_something_else(); }); /* или такой пример в контексте есть функция remove_all */ if(some_checks()) Confirm('Список заказов будет очищен. Продолжить?',remove_all);
dlg.addEventListener('click',function(e){e.stopPropagation});
нужна если ваши диалоги исчезают автоматически при щелчке куда-то кроме самого диалога. Это делается через поиск элементов с заранее согласованным именем класса по щелчку на body.
В смысле целевой скрипт которой берет эту самую переменную в которую вы подставляете реальные данные. Как он ее ищет, что ждет?
Так вот невозможно кому-то прыгнуть выше юзабилити рунета, который не может прыгнуть выше юзабилити наших зачаточных экономических и общественных отношений. Только поиск, понимание и признание большинством участников всех вредных факторов позволит повысить юзабилитю торговли.
Теперь, внимание, вопрос. Пресловутое общество потребления это благо или вред? Ну вот, а как повышать юзабилити, если мы против того, чтобы становиться буржуями? Это уже оффтоп, конечно, я лишь хотел показать то место, куда все приходят и стоят в недоумении. Столько сил положено, а толку все нет и нет...
Ну да, надо знать контекст. Если в name = рыба, то и проверить на эту рыбу. Что берет целевой скрипт? Ну может быть !=='undefined', или выдать пустой объект {}
Здесь нет ничего кроме присвоения переменной каких-то значений. Никакой логики, никаких активных действий. Вам придется дописать сверзху типа
if(name!='ноутбук')