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



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

所以当我有一个'name'条目(NoSpace)里面没有空格时,一切正常:

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

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

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

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

一定有一个简单的方法来解决这个问题,但显然我的专业英语没有那么好,我自己找不到。我已经找了很长时间了。我想这不是正确的事情。

您忘记了data-bubble中的双引号,浏览器会以不同的方式解释内容。

我建议你使用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"}'>

删除tr字符串:

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

在斜杠后使用单引号像‘

最新更新