Передайте переменную PHP в javascript, включая кавычки и javascript - PullRequest
0 голосов
/ 28 мая 2020

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

Это PHP string:

<img src="test.jpg" :class="{ 'add-class': comment == 1, 'another-class': comment == 2 }" x-on:click="submit()">

Атрибуты :class и x-on: - это атрибуты Alpine JS на случай, если вам интересно (проверьте это, это действительно круто!).

Эта строка PHP создается динамически, и я хотел бы передать ее переменной javascript, показанной здесь как jsVariable:

<script>
function test() {
  return {
    jsVariable: ,
    anotherVariable: true,
  }
}
</script>

Обновить, если я использую jsVariable: <?php echo json_encode($php_variable); ?>, I get SyntaxError: Неожиданный токен '&' в этой строке.

Если я использую jsVariable: '<?php echo json_encode($php_variable); ?>', (добавлены одинарные кавычки), тогда переменная анализируется как строка, а не как HTML.

Ответы [ 2 ]

1 голос
/ 28 мая 2020

Используйте json_encode():

<script>
function test() {
  return {
    jsVariable: <?php echo json_encode($php_variable); ?>,
    anotherVariable: true,
  }
}
</script>
0 голосов
/ 28 мая 2020

Если вы просто используете кодировку ASCII, вы можете попробовать кодировку base64.

PHP закодируйте строку в base64 и Javascript для декодирования, например:

<script>
function test(){
  var str = '<?php echo base64_encode($str);?>';
  return {
    jsVariable: atob(str),
    anotherVariable: true
  }
}

alert(test().jsVariable)
</script>

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...