ここでは、AJAX と PHP を使用してデータベースの値を取得しています。photos/image1.jpg のような画像のパスをデータベースに保存しました。データベースからそのデータを取得して送り返す間、バックスラッシュまたはフロントスラッシュが含まれているため、そのデータは印刷されません。では、AJAX を使用しているときに、そのデータを特殊文字を含むメイン ページに送り返すプロセスは何ですか?
私の JavaScript コード:
function getdata(eve)
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("grayscreen").innerHTML=xmlhttp.responseText;
} }
xmlhttp.open("GET","picdetails.php?q="+eve,true);
xmlhttp.send();
私のPHPコード
<?php
include 'config.php';
$query2="select * from Sampletable where sublabel= '".$_GET['q']."'";
$query=mysql_query($query2);
if(mysql_num_rows($query)>0)
{
$count=0;
while($res= mysql_fetch_array($query))
{
if($count==0)
{
$ans= "<img src=". $res['image']."\>";
echo $ans;
}
else {
echo "<img src=".$res['image']." style='display:none'/>";
}
$count=$count+1;
}
}
?>
ここで $res['image'] は、データベースから取得される images/image1.jpg のような画像のパスです。
画面の出力は
"<img src="\\">"<img src="style='display:none'/">
しかし、出力は
<img src="images/images1.jpg"/> <img src="images/images2.jpg" style='display:none'/>
問題は、取得されるデータが images/images1.jpg および images/images2.jpg であり、フロント スラッシュが含まれているためエコー バックされないことです。
そのデータを印刷するには?