如何在使用AJAX时从sql中检索一些特殊字符(&;,<;)


How to retrieve some special characters (& ,<) from sql while using AJAX

我将在文本框中输入的用户输入的文本保存到数据库中,然后使用ajax检索输入的文本(使用JavaScript而不是jQuery)。

所有特殊字符都被很好地插入到mysql中,但它无法检索包含特殊字符的数据。成功检索到大于(>)的符号,但&<导致整个页面加载而没有任何结果。

插入数据的代码

for($i=0;$i<$No_of_Inp_Fields; $i++)
{   
    $Desc = $_POST['txtdesc'.($i).''];
    $inquery="INSERT INTO DETAILS VALUES ('$Desc')";
    $sSql = mysql_query($inquery);
}

检索数据的代码

   $queryPopIP=mysql_query("select Desc from DETAILS where Nm='$tag'");
    $resPopIP=mysql_fetch_array($queryPopIP);
    $DesPop=$resPop[0];

这是使用php 作为响应发送的

显示数据的代码(使用javascript)

var desIP=serverResponse.split('_');
document.getElementById('popdiv2').innerHTML="<b>"+desIP[1];

没有jQuery。。。将文本添加为文本节点。它将保留尖括号或其他特殊字符。

document.getElementById('someElement').appendChild( document.createTextNode('<b>sushi</b>') );

我想这就是你要问的?老实说,仍然不是100%清楚。

如果不是这样,在显示数据值时,您可能需要对数据调用htmlentities(如果您使用的是PHP)。

编辑

因为看起来$DesPop是你通过AJAX发送的,所以在你的PHP 中这样做

$DesPop = htmlentities($resPop[0]);