2013-09-09 4 views
5

У меня есть переменная Мне нужно заглянуть в файл javascript и, похоже, не получится. Я попытался сделать .js в php и добавить эхо, но он не работает.PHP-переменная в файле Javascript

У меня есть файл, который вызывает это в нем

<script type="text/javascript" src="/file.php"></script> 

Внутри file.php У меня есть эта линия

style: { 
    color: '#<?php echo $_SESSION['colorOne']; ?>' 
} 

Все отлично работает, когда я заменить PHP с фактическим цветом (# FFFFFF). Я сталкиваюсь с проблемами при добавлении php.

+1

'стиль : 'is css, а не javascript – Cherniv

+0

Его часть графического скрипта, который его использует. – Milksnake12

+0

стиль используется для стилизации (css). Измените свой вопрос –

ответ

2

PHP может эмулировать любой контент, который вам нужен, даже изображения, файлы PDF и Office.

Во-первых, не путайте Javascript с CSS.

<link rel="stylesheet" href="/file.php"> 

В начале file.php, убедитесь, что вы начать сеанс:

<?php 
session_start(); 
?> 
.style: { 
    color: #<?php echo $_SESSION['colorOne']; ?>; 
} 

Если это не работает, вы должны отлаживать, если ваш сеанс инициализации и работает правильно, как сделать новый PHP-файл и положить в <?php session_start(); print_r($_SESSION); ?>

+0

, почему вы начали сеанс здесь? !!!! – mithunsatheesh

+0

Зачем вам использовать сеанс, который вы не инициировали? – DanFromGermany

+2

добавление session_start() работал, спасибо! – Milksnake12

1

вы должны вызвать session_start() функции перед тем, как значение сессии, поэтому вам нужно поставить:

session_start(); 

В верхней части этого файла.

Также <script type="text/javascript" src="/file.php"></script> для JavaScript-файла, а не внешние таблицы стилей, и последняя нота вы можете напечатать значение без одинарных кавычек:

color: #<?php echo $_SESSION['colorOne']; ?> 
+0

Повторный ответ, но это заставило его работать, спасибо! – Milksnake12

+0

не повторяется, есть только 20 секунд! –

+1

SO определенно нуждается в значке «сообщение в то же время приятель». Для ответов, отправленных в течение 30 секунд. –

0

Вашего файл должен быть обработан PHP, когда он получает по запросу. Когда вы находитесь на Apache, вам нужно добавить

AddType application/x-httpd-php .MYFILEEXTENSION 

в ваш .htaccess файл. Я не совсем уверен в nginx.

Как общая идея, я всегда делал это в файле index.php. Просто напечатать что-то в глобальную переменную как

window.phpTransitionVariables = { ... }; 

с тега сценария, как этот

<script type="text/javascript"> 
    <? //print my php variables 
</script> 
0

записи

<?php 
header('content-type: text/css'); 
?> 

на начинать из файла CSS с расширением PHP