簡體   English   中英

回顯包含來自MySQL的數據的HTML(空格)

[英]echo HTML that contains data from MySQL (whitespace)

我正在嘗試輸出與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"}>

但是只要名稱包含空格(是空格),我就會得到:Firefox:

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

IE:

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

必須有一種輕松的方法來解決此問題,但是顯然我自己的專業英語並不擅長自己找到它。 (搜索已經有一段時間了。我猜這不是正確的東西。)

您會忘記數據泡沫中的雙引號,並且瀏覽器以不同的方式解釋內容。

我建議您使用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.'\"}";

在斜杠后使用單引號,例如'\\

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM