2012-05-14 2 views
1

Я знаю, что есть много вопросов об этом, но я не могу заставить его работать.читать переменную php из javaScript?

Мой HTML (test.htm) имеет только этот код

<?php 
$var = 'foo'; 
?> 
<script type="text/javascript" language="javascript"> 
var val = "<?=$var?>"; 
alert(val); 
</script> 

Но когда я открываю файл с браузером значение Вэл "<?=$var?>" и не «Foo»

Как я могу сделать это работает? !!!

Thanks, Carlos.

+1

Поддерживает ли ваша среда PHP короткие теги? Попробуйте ' 'просто для тестирования. –

+1

Ваш тестовый файл test.htm? Не php? –

+0

@CMKanode: Я читаю * правильно * мимо этого, хороший. –

ответ

7

Если у вас есть некоторые конфигурации, чтобы позволить это,Файлыне будут выполнять PHP-код, вам придется использовать файл .php.

Если вы посмотрите на источник HTML-страницы в браузере, вероятно, вы увидите весь код PHP.

Единственным объяснением является то, что короткие теги <? ?> не включен, вы должны будете использовать
<?php echo $var; ?>

+3

Хорошо заметили ... –

5

Но когда я открываю файл с браузером значение Вэл «», а не «Foo»

Похоже, у вас есть shorttags disabled (и с помощью PHP < 5.4.0). Попробуйте

var val = "<?php echo $var ?>"; 

Редактировать: И заметьте комментарий CM Kanode по вопросу: Если это .htm файл, шансы, что ваш сервер не работает через PHP на все (что бы специальную конфигурацию и, вероятно, не быть хорошей идеей). (Вы открываете это через http:// URL, не так ли? Не открывать файл локально? Потому что, если сервер PHP не вовлекается, что PHP-теги не могут быть обработаны.)


И еще лучше, пусть json_encode макияж убедитесь, что значение свойства цитируются и такое для вас:

var val = <?php echo json_encode($var) ?>; 
0

попробовать:

var val = "<?php echo $var; ?>"; 
1

Может быть, вы не позволили shorttags, попробуйте

Вы также можете высматривать спасаясь строки и прочее, так что если у вас есть что-то более сложное, чем строка, вы можете использовать JSON

<?php $var = array('stuff' => 'things');?> 

<?php echo json_encode($var);?> 
1

Ваш пост говорит, что ваши EXTENS файл ион - .htm. У вас установлен веб-сервер для анализа файлов .htm как PHP? Если ваш сервер обрабатывает только файлы .php, переименуйте файл и повторите попытку, так как это объясняет, почему он не обрабатывается. Если он настроен на синтаксический анализ .htm-файлов, то T.J. Ответ Кроудера - наиболее вероятная проблема.

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