2015-06-11 2 views
-2

У меня есть Javascript-файл main.js, и я должен использовать в нем echo $_SESSION["username"], но это не работает. Есть ли способ, которым я могу это сделать/какое-то обходное решение?

+0

'PHP' не будет выполнен в файле' .js'. –

+1

У вас есть возможность сделать вызов ajax, чтобы получить нужное значение сеанса –

ответ

2

Вы не можете выполнить 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 только потому, что тогда нет необходимости почти избыточных элементов странице. И, очевидно, не используйте второй метод для чего-либо чувствительного.

+0

Я делал это, но переместил весь Javascript в свой собственный файл, потому что он становился слишком длинным. Могу ли я войти в систему, перенаправить их на страницу html, которая делает это, и установить cookie с помощью JS, а затем сразу же перенаправить их обратно на главную страницу, где «main.js» сможет получить доступ к этому значению cookie? – frosty

+1

Вы могли бы, да. Вам просто нужно будет использовать PHP [header()] (http://php.net/manual/en/function.header.php), чтобы перенаправить вас на страницу, которую вы хотите сделать. Я не совсем уверен, почему вы хотите сделать это на другой странице, когда сможете сделать это в верхней части текущей страницы, но, возможно, я что-то упустил. – Henders

+0

Подождите, может ли JS, установленный в другом файле, получить доступ к 'main.js'? – frosty

0

Существует вариант я увидел на 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-страницы.

Смежные вопросы