Ajax/jQuery success -> show as html markup



现在我有两个php页面。

第1页有一个函数,其中正在执行AJAX调用。关于成功,我想用id omschrijving在一个特定的跨度中展示结果。

代码:

  function toonProfiel() {
    $.ajax({
    type: "GET",
    url: "./query/get.php",
    dataType: 'json',
    success: function (value) {
      alert (value.omschrijving);
      $("#omschrijving").html(value.omschrijving);
    }
    });
  }

当然,我还有get.php页面,它看起来像这样(简化):

if ($stmt = $mysqli->prepare("SELECT omschrijving FROM leden")) {
    /* execute query */
    $stmt->execute();
    /* bind result variables */
    $stmt->bind_result($omschrijving);
    /* fetch value */
    $stmt->fetch();
    $value= array(
      'omschrijving' => $omschrijving
    );
    echo json_encode($value);
    /* close statement */
    $stmt->close();
}
/* close connection */
$mysqli->close();
?>

现在,当我提醒值.omschrijving时,标记仍然很好。显然,它正确地保存在mySQL中,也以正确的格式检索。

但是,当然,当我使用函数.html(value.omschrijving)时,它不是html格式的,所以它只是一个长字符串。

它看起来是这样的:这是第1行。这是2号线。

HTML FORMAT(引号出现在开发人员工具中,但不在页面上,空白规则出现但不在页上):

<span id="omschrijving">
"this is line 1.
this is line 2."
</span>

我想保留/添加html格式,这样它就会显示如下:

这是1号线。

这是2号线。

这可能吗?

"span"标记用于显示"内联"元素。您的文本被包装在一个跨度标记中,因此它显示在一行上。插入换行符的方法有很多,您可以将每一行包装在"p"或"div"标记中,也可以简单地在需要的地方插入换行符"br"。只要你没有看到html标记,你的代码就可以正常工作。即使你的html看起来像这样:

    <span id="omschrijving">
    "this is line 1.
     this is line 2."
    </span>

在代码编辑器中,如果不使用"&nbsp;"或换行标记,空白和换行符就不会自动保留。如果您不希望使用"与"符号或换行标记,也可以查看CSS的空白属性。

您的文本字符串是否被换行符打断?这就解释了为什么它们在MySQL中看起来很好,而在HTML 中则不然

尝试:

function (value) {
  value.split("n").map(function(n,i){return "<p>"+n+"</p>";}).join("n");
  alert (value.omschrijving);
  $("#omschrijving").html(value.omschrijving);
}

这将在新行上拆分,然后用<p> 标记,然后在每行之间重新加入一行换行符,只是为了可读性。

最新更新