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

时间:2015-12-16 08:53:24

标签: php mysql 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];

1 个答案:

答案 0 :(得分:1)

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

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

我觉得你在问这个问题?老实说仍然没有100%明确。

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

修改

因为看起来$ DesPop是你通过AJAX发送的,所以在PHP中执行此操作

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