【问题标题】:ajax json response containing html包含html的ajax json响应
【发布时间】:2021-04-29 21:09:37
【问题描述】:

我需要在发送之前对 ajax 响应数据进行 json_encode 吗?

$html1 = '<span>some html</span>';
$html2 = '<span>some html</span>';
$res = array('html1'=>$html1, 'html2'=>$html2);
echo json_encode($res);

或

echo $res;

【问题讨论】:

  • 这是php..?
  • @TJ 是的,我已经更新了问题
  • PHP 的基础之一是您不能echo 一个数组,所以是的,如果您希望以这种形式返回它,您需要对其进行 JSON 编码。

标签: php html ajax


【解决方案1】:

AJAX 中的 X 代表 XML

如果返回 XHTML,则不需要对其进行 json_encode

echo '<div>'.$html1.$html2.'</div>';

你可以

  1. 将其转储到页面someElement.innerHTML = returnValue; 或document.body.insertAdjacentHTML('afterend',returnValue);

  2. 从DOMFragment中提取:


const domFragMent = document.createElement("div")
domFragment.innerHTML = returnValue;
const spans = domFragment.querySelectorAll("span");
  1. 使用domParser

  2. 发送一个 json_encoded 值数组并在客户端将它们解析为 spans

【讨论】:

  • 我需要在 jquery 中单独处理返回的代码。所以例如使用 data.html1
  • @qqmisko 无论是 XML 还是 JSON,您仍然可以解析响应?
  • @maio290 谢谢。我将如何解析这样的 XHTML 响应?
  • 即使你想解析它,DOMParser 也能满足你。
猜你喜欢
  • 2013-10-09
  • 2011-06-15
  • 2014-04-05
  • 2011-07-26
  • 1970-01-01
  • 2018-03-25
  • 2011-09-01
  • 1970-01-01
相关资源
最近更新 更多