ОБСУЖДЕНИЕ

Php переменная и Javascript

14 ответов 9,1 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Автор темы
подскажите пожалуйста как сделать чтобы JavaScript мог работать с php переменной
 
Ну.. ПРисвойте значение вашей пхп переменной, какому-нибудь <input type=hidden>, ну а дальше уже в js скрипте получите значение этого хиддена.
 
Grey4D А как вы хотели с ней работать?
 
я хотел чтобы у меня было так: есть в php некая переменная и когда она становится равная какому-либо определенному значению (допустим 0) javascript начинал работать
 
т.е. яваскрипту в сущности наплевать на переменную.
ну тогда когда она станет = 0, надо всунуть скрипт в страницу, с запуском на загрузке.
 
ясно. а если допустим javascript должен работать с постоянно меняющимся значением переменной, то как быть? вообще можно так как-нить сделать чтоб javascript работал с переменной php?
 
Если абстрогировать и представить что пхп это земля а яваскрипт это луна, как поиметь на луне камень с земли?
 
тобеш хотите сказать это никак невозможно и нереально?
 
Напрямую - никак.
 
ну напрямую понятно что нет. я встречал что-то примерно <script><?php echo "$date" ?><script>. кажется так, но точно уже не помню( я так пробовал, у меня ничего не получилось
 
PHP:
<?php
//file.php
#Primer 1
$a = 1;
?>

<script type="text/javascript">
alert('<?php echo $a; ?>');
</script>

<?php 
#Primer 2
if ( $a > 0 ) {
echo '<script type="text/javascript">';
echo "alert('a>0');";
echo '</script>';
}

?>
 
выше пример того, как НЕ стоит делать без оченьб большой необходимости.
 
выше пример того, как НЕ стоит делать без оченьб большой необходимости.

Если придерживаться MVC и $a передается из контроллера в view, я с вами не соглашусь.
Например, в примере 1, передавать SESSION.user_id для AJAX запросов или в примере 2 сокращать скорость загрузки страницы, если в JS используется document.ready
 
или можно использовать XMLHttpRequest() передавая скрипту параметры в GET по которым он будет возвращать только нужную вам переменную.
 
как вариант ajax запрос и получить переменную(post, get, даже можно json массивом получить), если используется framework, то как сказал выше nws то вполне можно делать и так

Код:
<script type="text/javascript"> 
var ch = "<?php print $ch; ?>"
if (ch == 0) { ....run code.... }
</script>
.