Задать вопрос
Yura_Mart
@Yura_Mart

Как быть с 4 уровневой вложенностью кавычек в HTML?

Добрый день!
Подскажите, пожалуйста, как быть с 4 уровневой вложенностью кавычек в HTML?
Ошибка возникла тут
\'Доставлен\'

Пробовал \\'Доставлен\\' , \"Доставлен\", \\"Доставлен\\", но не помогло.
Всё это дело работает в php файле.

$value = '<form method="post">
<button type="submit" onclick="return confirm(\'Вы уверены, что хотите сменить статус на \'Доставлен\' ?\')">Доставить</button>
</form>';
  • Вопрос задан
  • 247 просмотров
Подписаться 2 Простой 2 комментария
Решения вопроса 1
@alexalexes
На более вложенном уровне экранирования нужно два символа экранирования \
Первый символ экранирует символ экранирования для следующего уровня.
Второй символ экранирует кавычку, чтобы не включало закрытие кавычки на уровне PHP.
$value = '<form method="post">
<button type="submit" onclick="return confirm(\'Вы уверены, что хотите сменить статус на \\\'Доставлен\\\' ?\')">Доставить</button>
</form>';

Вариант 2. Чтобы забыть об экранировании на уровне PHP, можно воспользоваться синтаксисом heredoc, который позволит вставлять любое константное содержимое без явного экранирования.
$value = <<<ANY_RANDOM_SYMBOLS_FOR_BORDER
<form method="post">
<button type="submit" onclick="return confirm('Вы уверены, что хотите сменить статус на \'Доставлен\' ?')">Доставить</button>
</form>
ANY_RANDOM_SYMBOLS_FOR_BORDER;
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Adamos
@Adamos
$value = <<<CODE
<form method="post">
 <button type="submit" onclick="return confirmDelivery()">Доставить</button>
</form>
<script>
 function confirmDelivery()
  { return confirm('Вы уверены, что хотите сменить статус на "Доставлен"?'); }
</script>
CODE;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы