HTML-тег не влияет на внешний вид при отправке через json

Я отправляю сообщение через json следующим образом:

function getMessage() {
  $response = [
    'message' => sprintf('email sent successfully to %s', '<em>[email protected]</em>'),
  ];
  echo json_encode($response);
}

и читает переменную следующим образом:

<span id = "mymessage"></span>
$(function() {
  $.ajax({
    type: 'get',
    url: 'getMessage',
    dataType: 'json',
    success: function(res) {
      $('#mymessage').text(res.message);
    },
    error: function(err) {
      console.info(err.responseText);
    }
  });
});

Я ожидал такого результата: письмо успешно отправлено на официальный@mysite.com но вместо этого я получаю такой результат: email sent successfully to <em>[email protected]</em>

почему тег <em> по-прежнему отображается как обычная строка, а не делает текст курсивом?

почему вы используете sprintf() почему вы не используете прямую строку?

M.Hemant 13.05.2019 06:00

потому что строка хранится в переменной. Я использую codeigniter, так что это в помощнике по языку. это из-за sprintf()?

dapidmini 13.05.2019 06:16

вы пробовали прямую строку?

M.Hemant 13.05.2019 06:17

да. Я только что попытался изменить код на простую строку, но тег <em> все еще там

dapidmini 13.05.2019 06:19
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
4
18
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте это ниже изменения, первая прямая строка для ответа и html() в js php:

function getMessage() {
  $response = [
    'message' => 'email sent successfully to '.'<em>[email protected]</em>'
  ];
  echo json_encode($response);
  exit();
}

js:

$(function() {
  $.ajax({
    type: 'get',
    url: 'getMessage',
    dataType: 'json',
    success: function(res) {
      $('#mymessage').html(res.message);
    },
    error: function(err) {
      console.info(err.responseText);
    }
  });
});

если это будет работать с .html(), вы также можете использовать свой sprintf() в php

Спасибо. .html() в части js работает даже с sprintf() в PHP. Я думал <span> всегда должен использовать .text()? в любом случае.. пока это работает, а?

dapidmini 13.05.2019 06:31

Другие вопросы по теме