Можно ли включать переменные Php или URL в Javascript в оператор If? - PullRequest
0 голосов
/ 22 февраля 2010

Я хочу сделать что-то подобное

мой-PHP-file.php

  $lang = 'es';

мой-JS-file.js

if ($lang == es)
   {
   something-magical-happens;
   }

или как это:

if (URL == www.mydomain.com/index.php?lang=es)
   {
   something-magical-happens;
   }

Ответы [ 3 ]

4 голосов
/ 22 февраля 2010

вы можете генерировать JS на лету

my.js.php:

<?php echo "//Yes." ?>
var i = "<?php echo $_GET['lang']; ?>";

function doSomethingWithI(){
  alert(i);
}

Теперь попробуйте включить

<script type="text/javascript" src="my.js.php?lang=es"></script>

в вашем HTML, и вы увидите:)

Редактировать: Проверьте это здесь: http://h.kissyour.net/so/phpjs/

Редактировать: Отредактированный пример на моем сервере стал ближе к тому, что я написал здесь.

Редактировать: О, да. Не забудьте почистить код!

0 голосов
/ 19 июля 2010

Вы можете - как указывает принятый ответ - создавать целые файлы javascript с помощью PHP. Но если вы просто пытаетесь получить доступ к некоторому ограниченному динамическому контенту, это часто бывает излишним. Если вы просто пытаетесь получить доступ к нескольким переменным, которые должны быть сгенерированы PHP, встроенный JavaScript работает нормально. Добавьте это к своей голове HTML:

<script type="text/javascript">
  <?php if( $condition == true ) : ?>
    var variable1 = <?php $var1 ?>,
        variable2 = <?php $var2 ?>;
  <?php else: ?>
    var variable1 = <?php $var1Alt ?>,
        variable2 = <?php $var2Alt ?>;
  <?php endif; ?>
</script>

Просто убедитесь, что вы добавили до , любые связанные сценарии зависят от этих переменных.

0 голосов
/ 22 февраля 2010

В этом конкретном случае, почему бы просто не правильно установить язык документа, а затем посмотреть на него с помощью JavaScript?

<html lang="es">

И в сценарии:

if (document.documentElement.getAttribute('lang') === 'es') { alert('Spanish'); }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...