установка cookie в цикле for - PullRequest
       2

установка cookie в цикле for

0 голосов
/ 09 января 2012

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

То, что я пытаюсь сделать, это установить cookie, когда пользователь нажимает на любой продукт (он должен хранить product_id). Так что этот продукт будет добавлен в график.

Я проверяю его на консоли javascript в Chrome, но возникает странная ошибка «Uncaught SyntaxError: Unnexpected token}», и он говорит, что сохраненных cookie нет.

   echo "<div id='products'>";
    for($i=0;$i<$num;$i++)
        {
            $ftc = mysql_result($result, $i, "product_image");
            $ftc2 = mysql_result($result, $i, "product_id");
            $ftc3 = mysql_result($result, $i, "product_name");
            $ftc4 = mysql_result($result, $i, "product_preis");
            $ftc5 = mysql_result($result, $i, "product_old_preis");
echo "<a href='details.php?product=".$ftc2."'>
<div class='products_list'>
        <img width='217px' height='323px' src='".$ftc."'/>
        <div class='alt_yazi2'><b>".$ftc3 ." &nbsp;&nbsp;&nbsp;&nbsp 
        <font style='float:right;'>".$ftc4."TL &nbsp;&nbsp<b style='text-decoration:line-through; float:right;'>".$ftc5."TL </b></font></b></a>
    </br>
    <div id='sepet'><a onclick='setCookie('ccname', '".$ftc2."', 'expiry');' href='#'>
    <img width='35px' height='25px' src='images/cart_icon.png'/>
        </a>
        </div>      
    </div></div> ";

        }
        echo "</div> ";

    ?>

И этот код JavaScript находится в начале страницы:

<script type="text/javascript" >
// JavaScript Document

var today = new Date();
var expiry = new Date(today.getTime() + 365 * 24 * 60 * 60 * 1000);

function getCookieVal (offset) {
  var endstr = document.cookie.indexOf (";", offset);
  if (endstr == -1) { endstr = document.cookie.length; }
  return unescape(document.cookie.substring(offset, endstr));
  }

function GetCookie (name) {
  var arg = name + "=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen) {
    var j = i + alen;
    if (document.cookie.substring(i, j) == arg) {
      return getCookieVal (j);
      }
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break; 
    }
  return null;
  }

function DeleteCookie (name,path,domain) {
  if (GetCookie(name)) {
    document.cookie = name + "=" +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
  }

function SetCookie (name,value,expires,path,domain,secure) {
  document.cookie = name + "=" + escape (value) +
    ((expires) ? "; expires=" + expires.toGMTString() : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
  }


</script>

заранее спасибо

Ответы [ 3 ]

2 голосов
/ 11 января 2012

Ошибка, вероятно, из-за этой функции toGMTString().Если бы вы использовали script type="javascript", toGMTString() сработало бы.Поскольку вы использовали script type="text/javascript", вам не нужно конвертировать в формат GMT, в настоящее время браузеры делают это за вас.

Я предлагаю вам просто удалить преобразование в GMT и попробовать.

С уважением

1 голос
/ 09 января 2012

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

Затем я вижу следующие проблемы:

Проблема № 1: Я не знаю, если это вашаПервая проблема или нет, но это не сработает из-за цитирования:

<a onclick='setCookie('ccname', '".$ftc2."', 'expiry');' href='#'>

Вы пытаетесь использовать одинарные кавычки, вложенные в одинарные кавычки.Это не сработает.Я не знаю, как работает ваш язык шаблонов, поэтому я не совсем уверен, как исправить эту часть, но с точки зрения HTML / javascript, вы хотите использовать одинарные кавычки, вложенные в двойные кавычки или, возможно, наобороткак это:

<a onclick='setCookie("ccname", ".$ftc2.", "expiry");' href='#'>
0 голосов
/ 09 января 2012

Может ли следующая строка в GetCookie вызвать непредвиденные синтаксические проблемы?

if (i == 0) break;

Все другие операторы if в вашем коде переносят затронутые строки в { и }, ноэтого нет.Если вы измените его на if (i == 0) { break; }, это решит вашу проблему с синтаксисом?

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