У меня есть Javascript-файл main.js
, и я должен использовать в нем echo $_SESSION["username"]
, но это не работает. Есть ли способ, которым я могу это сделать/какое-то обходное решение?
ответ
Вы не можете выполнить PHP-код в файле .js, но есть способы обойти его. Вы можете использовать вызов ajax для получения этой переменной (посмотрите this link для подсказок ajax).
В зависимости от информации, которую вы хотите сохранить, вы можете также получить PHP эхо его в определенный элемент в вашем HTML-страницы, а затем использовать JS, чтобы посмотреть этот элемент, как это:
echo "<span id='usernameForJS' style='display: none;'>".$_SESSION['USERNAME']."</span>";
А потом пойти и захватить что элементы внутренней HTML с JS, как это:
var username = document.getElementById('usernameForJS').innerHTML;
Я бы посоветовал AJAX только потому, что тогда нет необходимости почти избыточных элементов странице. И, очевидно, не используйте второй метод для чего-либо чувствительного.
Я делал это, но переместил весь Javascript в свой собственный файл, потому что он становился слишком длинным. Могу ли я войти в систему, перенаправить их на страницу html, которая делает это, и установить cookie с помощью JS, а затем сразу же перенаправить их обратно на главную страницу, где «main.js» сможет получить доступ к этому значению cookie? – frosty
Вы могли бы, да. Вам просто нужно будет использовать PHP [header()] (http://php.net/manual/en/function.header.php), чтобы перенаправить вас на страницу, которую вы хотите сделать. Я не совсем уверен, почему вы хотите сделать это на другой странице, когда сможете сделать это в верхней части текущей страницы, но, возможно, я что-то упустил. – Henders
Подождите, может ли JS, установленный в другом файле, получить доступ к 'main.js'? – frosty
Существует вариант я увидел на css-tricks.com
https://css-tricks.com/snippets/htaccess/use-php-inside-javascript/
Я никогда не пытался в одиночку, но комментаторы сказал, что это работает.
Существует также объяснение того, как вы могли бы сделать это в комментариях: https://css-tricks.com/snippets/htaccess/use-php-inside-javascript/#comment-85757
Но не забывайте TAHT это скорее «Hacky» способ сделать это, вы должны рассмотреть, чтобы открыть эту JavaScript файл и создать экземпляр вашего класса/функции (или что-то еще в этом файле) с .php-страницы.
- 1. Можно ли использовать проводник Windows с JavaScript?
- 2. Можно ли использовать JavaScript JavaScript?
- 3. Можно ли использовать AJAX xmlhttprequest с .swf-файлом?
- 4. Можно ли объединиться с переменными PHP $ _SESSION?
- 5. Можно ли использовать $ _SESSION ['variables'] в Drupal 8?
- 6. Можно использовать getElementsByClassName с внешним HTML-файлом?
- 7. Можно ли использовать javascript sha1?
- 8. Можно ли использовать JavaScript с IE?
- 9. Можно ли использовать ExactTarget с клиентским JavaScript?
- 10. Можно ли положить все приложение в $ _SESSION?
- 11. Можно ли запретить владение файлом?
- 12. Можно ли использовать openId?
- 13. Можно ли использовать с()?
- 14. Использование $ _SESSION ["attribute"] в javascript
- 15. Можно ли использовать Image.getSize со статическим файлом изображения?
- 16. $ _SESSION, мудрый использовать данные?
- 17. Можно ли проверить форму с суперглобальной переменной $ _SESSION?
- 18. Можно ли использовать шаблон модуля javascript?
- 19. можно ли использовать функцию javascript id?
- 20. правильный способ использовать $ _SESSION
- 21. Могу ли я использовать in_array с файлом()?
- 22. Можно ли использовать JavaScript внутри шаблона handlebars.js
- 23. Можно ли использовать Nodejs в javascript проекте
- 24. можно ли использовать CSS-файл в javascript?
- 25. Как связать файл javascript с файлом javascript?
- 26. Можно ли использовать метод «find» с запросом «javascript» с pymongo?
- 27. Можно ли отменить действие, выполненное командным файлом?
- 28. Можно ли обновить таблицу, используя WHERE email = $ _SESSION ['email']
- 29. Можно ли отправить файл на принтер с пакетным файлом?
- 30. Можно ли использовать AngularJS?
'PHP' не будет выполнен в файле' .js'. –
У вас есть возможность сделать вызов ajax, чтобы получить нужное значение сеанса –