Передача переменной Perl в функцию Javascript, вызываемую HTML

0

У меня есть этот код

Perl

my $var1 = to_json \@an_array1;
my $var2 = to_json \@an_array2;

HTML

<select id="example" title="example" onchange="doThis(<% $var1, $var2 %>)">

JavaScript

function doThis(var1, var2){
    alert(var1);
    alert(var2);
};

Однако он предупреждает, что var1 и var2 не определены, поэтому параметр не передается. (nb определенно определено в Perl, сделано самосвал!).

Может ли кто-нибудь помочь в правильном способе передать переменную Perl в JavaScript? Я искал сайт, но я не могу найти ничего, что помогло бы мне с тем, что я прошу.

благодаря

  • 1
    Вам нужно посмотреть, как выглядит страница, когда она попадает в браузер.
  • 1
    Perl - это язык на стороне сервера, а JavaScript - это язык на стороне клиента. Это означает, что ваш Perl уже был обработан до того, как обработан JavaScript. Все переменные, которые вы объявили в Perl, исчезли.
Показать ещё 1 комментарий
Теги:

1 ответ

0
Лучший ответ

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

<select id="example" title="example" onchange="doThis(<% $var1, $var2 %>)">

против

<select id="example" title="example" onchange='doThis("<% $var1 %>", "<% $var2 %>")'>

Обратите внимание на запятую и цитаты. Кроме того, убедитесь, что <% %> - это HTML. Экранирование содержимого. Теперь, независимо от того, безопасно это или нет, это совершенно другой вопрос. Вы хотите быть уверенным в perl, что $var1 и $var2 не имеют " и не заканчиваются в терминале \. Это будет ужасно.

  • 0
    Я не знаю (неуказанный) язык шаблонов, используемый здесь, но разве это не сработает, если JSON содержит кавычки? Похоже на ошибку впрыска.
  • 0
    Забыл прокомментировать, сработало спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню