【问题标题】:echo HTML that contains data from MySQL (whitespace)回显包含来自 MySQL 的数据的 HTML(空格)
【发布时间】:2015-05-22 10:03:24
【问题描述】:

我正在尝试输出一个动态表,它适用于 JQuery

为了摆脱“”符号,我尝试声明另一个变量:

$rowname = $row["name"];

然后将该行名称保存在数据气泡中,供 JQuery 使用。

echo '<tr id='.$current_row.' data-bubble={"part":"'.$rowname.'"}>';

JQuery 部分:

    var bubData=jQuery.parseJSON($(this).attr("data-bubble"));
    console.log(bubData);
    $("#bubbleTable b.part").text(bubData.part);

因此,当我有一个里面没有空格的“名称”条目 (NoSpace) 时,一切正常:

<tr id="1" data-bubble={"part":"NoSpace"}>

但每当名称包含空格(是空格)时,这就是我得到的: 火狐:

<tr id="2" Space"}="" data-bubble={"part":"Yes">

IE:

<tr id="2" data-bubble='{"part":"Yes' Space"}="">

必须有一种简单的方法来解决这个问题,但显然我的专业英语并不好自己找到它。 (现在已经搜索了很长时间。我猜不是正确的东西。)

【问题讨论】:

  • 所以,这有点工作,但我不知道这是否是最好的方法。 $data_bubble_insert = '{"part":"'.$row["name"].'"}'; printf('&lt;tr id="%d" data-bubble=\'%s\'&gt;', $current_row, $data_bubble_insert);

标签: php jquery mysql string echo


【解决方案1】:

你忘记了数据气泡中的双引号,浏览器会以不同的方式解释内容。

我建议您使用 printf/sprintf 正确格式化字符串,而不会出现双引号疯狂:

printf('<tr id="%d" data-bubble="{\'part\':\'%s\'}">', $current_row, $rowname);

输出:

<tr id="1" data-bubble="{'part':'Yes Space'}>"

(基于评论)尝试反转引用以避免问题:

printf("<tr id='%d' data-bubble='{\"part\":\"%s\"}'>", $current_row, $rowname);

输出:

<tr id='1' data-bubble='{"part":"Yes Space"}'>

【讨论】:

  • 谢谢,这确实有效,但是 JSON 没有正确使用它。它只接受双引号。所以输出必须是 {"part":"Yes Space"} 但是,在给定的情况下,在 " (双引号)前面使用 / (转义)似乎不起作用。我不知道为什么。 ://
【解决方案2】:

将 tr 字符串换行:

echo '<tr id='.$current_row.' data-bubble="{\"part\":\"'.$rowname.'\"}";

【讨论】:

  • 这并没有真正的帮助..我已经尝试过了。这只会返回:&lt;tr id="2" data-bubble='{\"part\":\"Yes' Space\"}=""&gt;
【解决方案3】:

斜线后使用单引号 像'\

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-16
    • 1970-01-01
    • 2014-02-14
    • 2014-08-28
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多