Не могу передать переменную php в javascript в Eclipse IDE
Мне нужно инициализировать некоторую переменную js, передав переменную php <some javascript>.js
файл, в моем PHP-проекте под Eclipe Luna IDE (PDT)
Когда я пытаюсь сделать:
if (typeof strPreviewImg == 'undefined') {
strPreviewImg = <?php echo(plugin_dir_url( __FILE__ )."images/vpreview_center.png"); ?>;
}
У меня есть следующие ошибки от Eclipse:
Несколько маркеров в этой строке - Синтаксическая ошибка, вставьте ": Выражение" для завершения Выражение - Синтаксическая ошибка на токене "<", неверное выражение - Синтаксическая ошибка на токене, удалите эти токены
Когда я пытаюсь использовать кавычки:
if (typeof strPreviewImg == 'undefined') {
strPreviewImg = "<?php echo(plugin_dir_url( __FILE__ ).\"images/vpreview_center.png\"); ?>";
}
Целое выражение php передается в виде строки в мой HTML-код:
<video poster="<?php echo(plugin_dir_url( __FILE__ ).'images/vpreview_center.png)'; ?>">
Итак, я делаю что-то не так или есть какая-то проблема с Eclipse PDT?
Спасибо
1 ответ
Я вычел из вашего использования plugins_dir_url()
что вы используете WordPress.
в WordPress, после использования wp_enqueue_script()
Чтобы зарегистрировать дескриптор скрипта, вы можете "локализовать" данные, чтобы они были доступны глобально на стороне клиента.
с WordPress/PHP:
<?php
$args = array(
'var1' => 'value 1',
'var2' => 'value 2'
);
wp_localize_script( 'your_handle', 'your_cdata', $args );
?>
результаты в cdata в вашем документе <head>
<head>
<script type='text/javascript'>
/* <;![CDATA[ */
var your_cdata = {"var1":"value 1","var2":"value 2"};
/* ]]> */
</script>
</head>
тогда ваш javascript может использовать:
alert(your_cdata.var1);
alert(your_cdata.var2);
Необязательно вы можете использовать PHP для обслуживания файлов Javascript, установив URL-адрес вашего src в файл PHP:
<script type="text/javascript" src="url_to_your_php_file.php" /></script>
или с переменными $_GET
<script type="text/javascript" src="url_to_your_php_file.php?var1=value1" /></script>
затем в "your_php_file.php":
<?php
header( 'content-type: text/javascript' );
// possible database query here using $_GET[$var1]
$value = 'some value';
?>
function name() {
var example1 = '<?php echo '"' . $value . '"'; ?>';
var example2 = '<?php echo '"some other data"'; ?>';
alert( example1 + ' / ' + example2 );
}
<?php
// and even do further includes to additional files (php, js, etc)
@include 'local_path_to_some_other_file.js';
exit;
?>
ПОСЛЕДНЕЕ вы можете скопировать пример WordPress самостоятельно:
<head>
<script type='text/javascript'>
/* <![CDATA[ */
var your_cdata = {
"var1":<?php echo '"value 1"'; ?>,
"var2":<?php echo '"value 2"'; ?>
};
/* ]]> */
</script>
обратите внимание на использование одинарных кавычек, заключающих двойные кавычки. это делает двойные кавычки частью вывода.