echo包含来自MySQL(空白)的数据的HTML

时间:2015-05-22 10:03:24

标签: php jquery mysql string echo

我正在尝试输出一个与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);

所以当我有一个名字&#39;入口(NoSpace)里面没有空格,一切正常:

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

但只要名称包含空格(Yes Space),这就是我得到的: 火狐:

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

IE:

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

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

3 个答案:

答案 0 :(得分: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"}'>

答案 1 :(得分:0)

scape tr string:

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

答案 2 :(得分:0)

在斜线后使用单引号 喜欢&#39; \