2013-09-26 6 views
0

У меня есть файл config.php, где я определяю несколько переменных.Как передать переменную от php до jQuery

Я хочу использовать некоторые из этих переменных в сценарии jQuery.

Я создал заголовок-js.php файл со следующим содержанием:

<script type="text/javascript"> 
jQuery("#msgid1").html("Hello world."); 
jQuery("#msgid1").html("Hello world again."); 
global_cookie_prefix = <?php echo(global_cookie_prefix);?>; 
</script> 

Когда я бегу выше msgid1 DIV показывает «Привет, мир снова.»

Когда я поменять местами строки:

<script type="text/javascript"> 
jQuery("#msgid1").html("Hello world."); 
global_cookie_prefix = <?php echo(global_cookie_prefix);?>; 
jQuery("#msgid1").html("Hello world again."); 
</script> 

в msgid1 ДИВ показывает "Привет мир".

Кажется, что строка, где я определяю global_cookie_prefix, вызывает прерывание скрипта.

Я в затруднении, как это решить.

Thaks.

+1

Проверьте свою консоль. Каковы ошибки? – tymeJV

+1

И что он показывает в вашем источнике после загрузки страницы? – aynber

+0

Вам не нужен 'var global_cookie_prefix = ;' Где 'var' отсутствует? – MahanGM

ответ

5

Я d bet проблема заключается в том, что вы не определяете свою переменную с помощью ключевого слова var и/или что ваш PHP-фрагмент не находится между кавычками. Попробуйте это

var global_cookie_prefix = '<?php echo global_cookie_prefix; ?>'; 
^^^      ^        ^
+0

префикс "var" не помог решить проблему. однако цитаты были сделаны. Благодарю. – jdias

1

Как вы хотите передать переменные в JS как строки, вам нужно будет сказать JS это строки: global_cookie_prefix = '<?php echo global_cookie_prefix;?>'; (предполагая, что global_cookie_prefix является постоянной величиной, и в этом случае оно должно быть все в верхнем регистре по соглашению)

0

Вы уверены, что global_cookie_prefix является константой (потому что ее не в верхнем регистре). Попробуйте добавить знак переменной '$' в global_cookie_prefix в случае, если это не определенная константа.

<?php echo($global_cookie_prefix);?>; 

также вам нужно котировки в вашем JavaScript ... (попробуйте и без $ в зависимости от постоянной или нет) кстати по конвенционных констант в верхнем регистре.

global_cookie_prefix = "<?php echo global_cookie_prefix; ?>"; 
+0

есть. это константа, определенная в config.php. Я могу повторить его и подтвердить, что значение загружено правильно. благодаря – jdias

0

Поскольку сценарий на самом деле PHP скрипт вывода Javascript, ваш сценарий может быть завершение на ошибку, потому что global_cookie_prefix является неопределенным постоянным. Если global_cookie_prefix - это переменная, и вы определили ее где-то еще на странице, где этот скрипт включен, вам может понадобиться обновить код ниже, добавив знак «$».

Вам также нужно ключевое слово 'var' в JS, чтобы избежать ошибок в строгом режиме.

<script type="text/javascript"> 
    jQuery("#msgid1").html("Hello world."); 
    **var** global_cookie_prefix = '<?php echo(**$**global_cookie_prefix);?>'; 
    jQuery("#msgid1").html("Hello world again."); 
</script> 

Я также рекомендовал бы проверить свои журналы ошибок Apache, чтобы увидеть, что ошибки и подтвердить, что выход PHP не нарушая на этой линии.

Кроме того, если у вас есть error_reporting, генерируемое PHP предупреждение о том, что global_cookie_prefix не определено, наверняка сломает ваш javascript и сделает его неудачным в этом пункте.

Было бы проще помочь, если бы вы вставляли больше своего кода, чтобы дать этот контекст фрагмента.

EDIT: Я добавил одинарные кавычки вокруг вывода PHP, поскольку строка, выводимая из PHP, нарушит ваш JavaScript.

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