Глобальная переменная JavaScript не определена - PullRequest
2 голосов
/ 05 ноября 2011

Я немного новичок в JavaScript, и у меня возникла проблема с глобальной переменной.У меня есть идентификатор группы, который является частью моих переменных сеанса php, который я хочу поместить в глобальную переменную JavaScript, чтобы я мог получить доступ к значению в JavaScript.Но JavaScript всегда показывает переменную как undefined, поэтому я должен что-то делать неправильно.В двух словах, у меня есть следующий код:

<head>
   <script type="text/javascript">var group = <?php echo($group)?>;</script>
</head>
<body>
<script type="text/javascript">
   function clicked() {
      alert(window.group);
   }
</script>

Когда всплывает окно alert, оно показывает неопределенное, но я могу сказать, глядя на сгенерированный источник, а также firebug, что значениеустановить переменную в одной точке.

Что я делаю не так?

Ответы [ 3 ]

1 голос
/ 02 февраля 2012

Лучшее решение для такого рода проблем - всегда вызывать json_encode при печати переменной php в качестве переменной JS. В вашем случае произойдет сбой, если ваша строка будет содержать символ новой строки или кавычку

<script type="text/javascript">var group = <?php echo(json_encode($group)) ?>;</script>
0 голосов
/ 05 ноября 2011

Если результатом <?php echo($group) ?> является строка, вам нужно поместить кавычки в источник script, например, так:

<script type="text/javascript">var group = '<?php echo($group)';</script>

Вам не нужно использовать window.group дляприсвойте его так, как будто это уже контекст переменной.

0 голосов
/ 05 ноября 2011

использование:

<script type="text/javascript">window.group = <?php echo($group)?>;</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...