Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.09.2015, 18:42
Интересующийся
Отправить личное сообщение для blits Посмотреть профиль Найти все сообщения от blits
 
Регистрация: 18.08.2015
Сообщений: 15

Помогите доделать скрипт (
Помогите доделать мой скрипт В php бы я мог бы сделать так:
if ($_COOKIE['ad'] == null): ?>
<!DOCTYPE html>
<html>
<head>
</head>
<body>ля-ля-ля<body>
</html>
<?php endif; ?>

Но как так сделать в JS я незнаю... Пилю рекламную строку, при нажатии на кнопку крестика, в куках записывается что строка больше не будет показываться, но как ее не показывать, если у меня в куках не null я незнаю... Записываю с помощью jqerry cookie. Я на юкозе, поэтому юзать php не могу, а так бы давно уже сделал на нем.
Вот мой код http://jsfiddle.net/cn3oztzz/

if($.cookie('ad1_no') == null) {
и тут как то вывести html код))
}


пробовал с document.write, он все перезаписывает, с ним не вариант.
Нашел еще innerHTML, но не совсем понял, как с помощью него сделать то, что мне нужно

Последний раз редактировалось blits, 12.09.2015 в 18:58.
Ответить с цитированием
  #2 (permalink)  
Старый 12.09.2015, 19:54
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

if ($_COOKIE['ad'] == null): ?>

это ошибка Notice в рhp при отсутствии элемента массива с ключем 'ad'
правильно
if (empty($_COOKIE['ad'])): ?>

по js cookie ответ здесь
Ответить с цитированием
  #3 (permalink)  
Старый 12.09.2015, 20:05
Интересующийся
Отправить личное сообщение для blits Посмотреть профиль Найти все сообщения от blits
 
Регистрация: 18.08.2015
Сообщений: 15

Сообщение от Poznakomlus
это ошибка Notice в рhp при отсутствии элемента массива с ключем 'ad'
правильно
я сейчас не про php, а как сделать аналогичную функцию на js, не куки, а if с возможностью вывода html.
Ответить с цитированием
  #4 (permalink)  
Старый 12.09.2015, 22:31
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Poznakomlus
это ошибка Notice в рhp при отсутствии элемента массива с ключем 'ad'
Это не ошибка, это предупреждение, и при отключении их вывода $_COOKIE['ad'] будет равно null, так что можно, было бы и проще:

if (!$_COOKIE['ad'])
Ответить с цитированием
  #5 (permalink)  
Старый 13.09.2015, 00:31
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

laimas,
а в чем для тебя разница между ошибкой и предупреждением. Или предупреждение это так забить можно отключив. Есть правило хорошего тона включать все ошибки. А не говнокодить уберая вывод ошибок
причем я именно правильно назвал ошибка
http://php.net/manual/ru/errorfunc.c...rror-reporting
Ответить с цитированием
  #6 (permalink)  
Старый 13.09.2015, 09:00
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Предупреждения, это рекомендации, и если я знаю, что они не влияют на исполнения кода, а тем более не приведут к фатальной ошибке, то я кивну и скажу спасибо. Но не более этого.
А вот ошибка, это уже невозможность работы кода далее, хотя можно ее и "засобачить".

Для начинающих обязательно нужно выводить и предупреждения и ошибки, а тем кто знает о чем это, можно отключить. А в РНР можно отключать только предупреждения, выводя только ошибки во время отладки.

Правило хорошего тона - вывод ошибок только во время отладки, на сервере их обязательно отключать, и не только РНР, но SQL, определяя их вывод в лог-файл.

Зная кое что и о поведении языка той или иной версии, можно даже заглушить вывод ошибки. Например, в новых версиях полученный массив размыкается и можно сразу работать с его элементами, что к примеру в JS легко делается. В старых версиях РНР этого нельзя сделать, только через предварительное объявления переменной. Это вроде бы мелочь, но она не позволяет обойтись одним лаконичным выражением в условии. Но все же, если знать поведение языка, то и в старых версиях при работе с массивами вполне можно поставить и заглушку.

А насчет правильно ли или нет, ну так это вообще "баг" - в РНР (и не только) предупреждение и ошибка, это все таки понятия разные.

А мануал я знаю.
Ответить с цитированием
  #7 (permalink)  
Старый 13.09.2015, 13:34
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Сообщение от laimas
при работе с массивами вполне можно поставить и заглушку
это не заглушка, это костыль для прикрытия своей задницы. Ведь у тебя все правильно. При этом внеся неясность (невидимость и непонимание) для других разработчиков работающих с этим кодом.
А теперь по коду
твой вариант
if (!$_COOKIE['ad'])

и мой
if (empty($_COOKIE['ad'])):

так как же правильно надо писать? косячить и прикрыватся запретом выводом предупреждений или сразу писать правильно
Сообщение от laimas
А мануал я знаю
Так в нем же написано для чего использовать empty
Или это лишнее для тебя?
Ответить с цитированием
  #8 (permalink)  
Старый 13.09.2015, 14:02
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Poznakomlus
это не заглушка, это костыль для прикрытия своей задницы. Ведь у тебя все правильно.
Голова для того, чтобы думать. А что касается $_COOKIE, как и $_POST, и другие, это супеглобальные массивы, это ни о чем не говорит вам?

Вам никто не запрещает писать isset($_POST['x']), а я буду $_POST['x'], и небо не упадет на землю. Язык знать надо, а не базарить зря.
Ответить с цитированием
  #9 (permalink)  
Старый 13.09.2015, 19:27
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Сообщение от laimas
$_COOKIE, как и $_POST, и другие, это супеглобальные массивы
Причем здесь это ведь ты советуешь написать говнокод
Сообщение от laimas
if (!$_COOKIE['ad'])
Сообщение от laimas
Язык знать надо, а не базарить зря
Так вот, читай документацию лучше и там по ссылкам написано все что тебя интересует. Не в грубой форме, а пишут советы чтоб не говнокодили. Ты запустишь свой код в другой среде где ошибки включены и увидишь все прелести твоего подхода.
Сообщение от laimas
Вам никто не запрещает писать isset($_POST['x']), а я буду $_POST['x'], и небо не упадет на землю
Ну и говнокодь себе далее, только вот другим советы не надо в том же духе давать. Можешь повесить себе медаль и сказать я крутой программист, я пишу круче всех, плевать мне на встроенный empty, его для мудаков написали, а я круче
Ответить с цитированием
  #10 (permalink)  
Старый 13.09.2015, 20:29
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Poznakomlus
Причем здесь это ведь ты советуешь написать говнокод

Начинается вульгарность, и при том обвиняя другую сторону. )

Читайте, изучайте. isset($_COOKIE) это глупость, а if($_COOKIE['var']) без isset породит лишь напоминание, ценность которого в том, что напомнить - использование не инициализированной переменной опасно. При отключении вывода предупреждений интерпретатор молча вернет null. И я это знаю, и я в курсе переменных, которые ожидаю, как и их типов.

Вам никто не запрещает использовать isset, на здоровье, только не путайте ошибки с предупреждениями, а следственно и поведение языка в этих случаях.

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите доделать скрипт?! iboyidraw Общие вопросы Javascript 2 29.10.2012 20:15
Помогите пожалуйста правильно написать скрипт raffx Events/DOM/Window 17 16.10.2012 20:31
Помогите! "Не работает скрипт отсчета времени! Я нуб) Dobson Общие вопросы Javascript 4 28.05.2011 18:20
Скрипт условий if, помогите разобраться lyuis Общие вопросы Javascript 8 28.12.2010 21:21
Люди, помогите адаптировать скрипт под Оперу KiLLk Opera, Safari и др. 1 01.06.2009 01:05