У меня есть переменная сеанса PHP, $_SESSION['user']
, живая на протяжении всего сеанса. В разделе главы у меня есть файл JavaScript, scripts.js
.
Как передать переменную сеанса в файл JavaScript, если я хочу что-то вроде следующего.
$.("#btn').click ( function() { alert('<?php echo $_SESSION['user']; ?>'); } )
Поскольку <?php ?>
Не распознается в файле JavaScript, код выше не работает. Поэтому я должен сам вставить файл PHP, но как его сохранить в файле JavaScript?
В вашем файле PHP вы можете указать своего пользователя как глобальную varibale:
<script type="text/javascript"> var ptamzzNamespace = { sessionUser : '<?php echo $_SESSION['user']; ?>' } </script>
Включите это, прежде чем включать свой внешний код JavaScript.
Затем в вашем файле JavaScript вы можете использовать его:
$.("#btn').click ( function() { alert(ptamzzNamespace.sessionUser); } )
Кроме того: если вы не уверены, что ваша varibale сессии может содержать сами кавычки, вы можете использовать addslashes()
addlashes addslashes()
чтобы исправить эту проблему:
<?php echo addslashes($_SESSION['user']); ?>
<?php echo addslashes($_SESSION['user']); ?>
даже если это может привести к тому, что вы действительно не хотите отображать (потому что он создает строку со слэшами), это поможет вам не сработает ваш код. (Спасибо Артефакто)
Будет ли это вариантом для вас?
Задайте идентификатор пользователя (в PHP) в виде ввода, скрытом в вашем файле. В вашем JavaScript-коде вы можете прочитать значение скрытых типов ввода.
Вы можете настроить сервер для анализа файлов .js как PHP. Например, в файле Apache или файле .htaccess:
<FilesMatch "scripts.js"> AddHandler application/x-httpd-php5 .js </FilesMatch>
попробуйте с логикой ниже
print ' <script type="text/javascript" language="javascript"> function checkForm() { var username = "'.$_SESSION['user'].'"; if( username == '') { alert('No Times selected'); return false; } } </script>';
Разбор включенного файла JavaScript как PHP
Создайте файл .htaccess в каталоге JavaScript и добавьте следующую строку.
AddHandler php-cgi .js
Теги <?php ?>
до сих пор распознаются вашим файлом JavaScript.
Используйте Ajax для получения идентификатора пользователя
Создайте файл с именем getID.php, который только повторяет идентификатор пользователя. Затем в вашем файле JavaScript вы можете использовать следующий код.
$.get('getID.php', function(uid) { alert('User ID is:' + uid); });
Создайте тег сценария, прежде чем включать идентификатор пользователя для печати JavaScript.
<script type="text/javascript"> userID = <?php echo $_SESSION['user']; ?>; </script>
Теперь у вас будет доступ к идентификатору пользователя с помощью переменной userID.