|
|
|
| Для добавления номера объявления в избранное использую этот код:
<script type="text/javascript">
function setCookie(name, value, expires, path, domain, secure) {
document.cookie = name + "=" + escape(value) +
((expires) ? "; expires=" + expires : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
var cookie = document.cookie;
if (cookie) alert("Объявление № <?php echo $id; ?> успешно добавлено в раздел: \"Мои объявления\".");
}
</script>
|
<a href="#" class="linc" title="Добавить объявление в избранное" onClick='setCookie ("nomer_obyavl[<?php echo $id; ?>]", "<?php echo $id; ?>",
"date = new Date(); date.setHours(date.getHours() + 8640); date.toUTCString()", "/", ".domen.ru");'>
|
Куки добавляются, но почему то не сохраняются после закрытия браузера. | |
|
|
|
|
|
|
|
для: segazav
(24.11.2014 в 20:37)
| | Потому, что вы передаете не аргументы в функцию, а пишите какой-то триллер. | |
|
|
|
|
|
|
|
для: confirm
(24.11.2014 в 21:56)
| | Если честно, я даже смеялся над вашим остроумным ответом (без сарказма).
Но все таки в чем заключается тот самый триллер? | |
|
|
|
|
|
|
|
для: segazav
(24.11.2014 в 22:14)
| | Продолжайте смеяться. | |
|
|
|
|
|
|
|
для: confirm
(24.11.2014 в 22:22)
| | Простите, но я плохо разбираюсь в js, поэтому и обратился к вам.
Я уже не первый день пытаюсь разобраться, в чем моя ошибка. | |
|
|
|
|
|
|
|
для: segazav
(24.11.2014 в 22:33)
| |
function setCookie(name, value, expires, path, domain, secure) {
alert(name+'/'+value+'/'+expires)
}
<button onclick="setCookie('nomer_obyavl[12]', '12', 'date = new Date(); date.setHours(date.getHours() + 8640); date.toUTCString()', '/', '.domen.ru')">SET</button>
|
Объяснять почему такой бардак получает функция или нет? И почему я для примера использую не А, а BUTTON? | |
|
|
|
|
|
|
|
для: confirm
(24.11.2014 в 22:43)
| | Я понял, что ошибка в этой строке: "date = new Date(); date.setHours(date.getHours() + 8640); date.toUTCString();"
По другому у меня функция вообще не срабатывает....
И почему для примера вы использовали именно кнопку? | |
|
|
|
|
|
|
|
для: segazav
(24.11.2014 в 23:05)
| | Не только в этой.
'nomer_obyavl[12]' - это что? Если таким образом вы хотите получить элемент массива nomer_obyavl, то почему это передается в аргументе как строка? И почему вы не назвали свою функцию ustanovka_Pechenja, а setCookie? Что это за "блатняк" - nomer_obyavl, если функциям даете имена нормальные?
Тоже самое и с "date = new Date(); date.setHours(date.getHours() + 8640); date.toUTCString();" - каким образом это будет выполнено, если это простая строка? Вы можете не знать JS, но если идти от обратного значит вы знаете РНР. Как вы думаете, если функция РНР принимает два аргумента, а вы ей передаете их таким образом:
<?
myfunction(1, $a = date('Y-m-d'); $a = datestring($a));
|
будет ли выполнен ваш код или вы получите ошибку? Если вы понимаете, что это несуразица, а не передача аргументов в функцию, то с какой стати JS должен поступать иначе и выполнять бред, если вы даже и уберете кавычки, и это будет уже код?
Вот с какого тяжелого будуна можно такое выдумать? Вы же пишите очевидную несуразицу, с которой ни одному языку не разобраться, ну неужели это не понятно?
Для примера я использую кнопку потому, что a href="#" - это глупость, используйте тег А по назначению. Если он у вас будет где-то в конце страницы, то щелчок по нему вызовет "скачок" страницы в самый верх. Либо блокируйте это поведение, либо щелкайте по чему либо другому, а щелкнуть на странице можно по любому ее элементу. | |
|
|
|
|
|
|
|
для: confirm
(24.11.2014 в 23:25)
| | Блин, все переделал, но все равно не срабатывает функция:
function setCookie() {
document.cookie = "nomer"[<?php echo $id ?>]"=" + escape("<?php echo $id ?>")";" +
"expires = "date = new Date(); date.setHours(date.getHours() + 8640); date.toUTCString()";" + "path=/;" + "domain=.domen.ru";
}
|
| |
|
|
|
|
|
|
|
для: segazav
(25.11.2014 в 00:01)
| | Еще раз разъяснять, что "что-то написанное в кавычках, это строка, а не исполняемый код" или не надо? | |
|
|
|
|
|
|
|
для: confirm
(25.11.2014 в 00:12)
| | Ну я уже 10 раз все пересмотрел, все что в кавычках строка, почему не работает???
document.cookie = "nomer[<?php echo $id ?>]=" + escape(<?php echo $id ?>)";" +
"expires="date = new Date(); date.setHours(date.getHours() + 8640); date.toUTCString()";" + "path=/;" + "domain=.domen.ru";
|
хоть так.... хоть как...
document.cookie = "nomer[<?php echo $id ?>]=" + escape(<?php echo $id ?>)"; expires="date = new Date(); date.setHours(date.getHours() + 8640); date.toUTCString()"; path=/; domain=.domen.ru";
|
| |
|
|
|
|
|
|
|
для: segazav
(25.11.2014 в 00:54)
| | Читайте и изучайте здесь, а я не знаю как еще вам объяснить о той чепухе, что вы пишите.
escape(<?php echo $id ?>) - это вообще полет фантастики. | |
|
|
|
|
|
|
|
для: confirm
(25.11.2014 в 00:58)
| | Именно там я изучал все это. Без этого мне вообще не как:
Упростил уже все до "нельзя", не срабатывает и диалоговое окно не выводит:
<script type="text/javascript">
function setCookie() {
document.cookie = "nomer[<?php echo $id ?>]=<?php echo $id ?>; expires="date = new Date(); date.setHours(date.getHours() + 8640); date.toUTCString()"; path=/; domain=.domen.ru";
var cookie = document.cookie;
if (cookie) alert("Объявление № <?php echo $id; ?> успешно добавлено в раздел: \"Мои объявления\".");
}
</script>
|
<a href="#" class="linc" title="Добавить объявление в избранное" onClick='setCookie()'>
Если вас не затруднит, приведите пожалуйста пример похожего рабочего кода со сроком жизни "куков" - 90 дней. А то я уже правда замучился уже и не могу понять, где кроется ошибка! | |
|
|
|
|
|
|
|
для: segazav
(25.11.2014 в 01:04)
| | Что такое $id? Число, причем которое подставляет сервер? И зачем к числу применять escape()? Ну хотя бы поинтересовались для чего этот метод JS предназначен.
Если именно там вы изучали, то такой отсебятины не написали бы. Вы что за редактор для написания кода используете? Он у вас что не имеет подсветки и вы не видите, что пишите нечто невообразимое? Вот вам с подсветкой, если ее в РНР написать:
<?
//пусть $d = 1, тогда получим вот такое
$s = "nomer[1]=1; expires="date = new Date(); date.setHours(date.getHours() + 8640); date.toUTCString()"; path=/; domain=.domen.ru";
|
Это по вашему вы изучали? Кроме этого, даже если вы правильно расставите кавычки, то несколько инструкций кода не будут частью строки, то есть не могут быть выполнены в ее контексте!
Еще раз внимательно изучите код по ссылке. | |
|
|
|
|
|
|
|
для: confirm
(25.11.2014 в 01:16)
| | Вот так функция работает, но все равно не сохраняются КУКИ!!!!!
<script type="text/javascript">
function setCookie() {
date = new Date(); date.setHours(date.getHours() + 8640);
document.cookie = "nomer_obyavl[<?php echo $id ?>]=<?php echo $id ?>; expires="+date.toUTCString()+"; path=/; domain=.domen.ru";
var cookie = document.cookie;
if (cookie) alert("Объявление № <?php echo $id; ?> успешно добавлено в раздел: \"Мои объявления\".");
}
</script>
|
| |
|
|
|
|
|
|
|
для: segazav
(25.11.2014 в 01:37)
| | Ну и чем это отличается от ранее написанного?
Используйте в РНР короткий тег, в новых версиях его использование включено по умолчанию:
| |
|
|
|
|
|
|
|
для: confirm
(25.11.2014 в 01:42)
| | Оказывается дело совсем не в этом!!!!
Вышеуказанный код рабочий!!! Просто в браузере было настроено удаление куков после закрытия.
Спасибо вам за помощь!!! Наконец то у меня уже нервы чуть лопнули. | |
|
|
|
|
|
|
|
для: segazav
(25.11.2014 в 02:04)
| | Вот только дурочку не надо пороть, что методы JS, которые вы воткнули в строку в первом случае будут исполнены.
Открывайте свой код в отладчике и проверяйте. | |
|
|
|
|
|
|
|
для: confirm
(25.11.2014 в 02:09)
| | Я имел ввиду последний указанный мной код.
Я его вставил на страницу, добавил куки, закрыл браузер, открыл браузер и все сохранилось. | |
|
|
|
|
|
|
|
для: segazav
(25.11.2014 в 02:22)
| | Я грешным делом подумал, что речь о ранней писанине. Последнее да, это рабочий код. | |
|
|
|