我通过php抓取来自MySQL的图像路径然后使用json_encode和响应数据我使用下面的代码来显示图像但不能正常工作
我的PHP代码
$imgurl=array();
if(mysql_num_rows($result) > 0){
//Fetch rows
while($row = mysql_fetch_array($result)){
$imgurl = $row['imgurl'];
}
}
echo json_encode($imgurl);
else
{
echo "No results matching family \"$family\"";
}
我的Jquery方面的守则
success: function( data ){
$('#pgwrapid').html(data);
}
数据给出了下面的输出,实际上是图像路径
["images\/zara\/shoes\/thumbnail","images\/hermes\/shoes\/thumbnail","images\/hermes\/shoes\/thumbnail"]
现在如何删除反斜杠并将其插入img src =“”
答案 0 :(得分:0)
那里你的报价错误。您需要使用alt='Thumbnail'
的单引号或转义您已使用的双引号alt=\"Thumbnail\"
答案 1 :(得分:0)
试试这段代码:
success: function( data ){
var evaluateddata = eval('('+data+')');
$.each(evaluateddata,function(index,val){
$('#pgwrapid').append("<img src="+val+" alt="Thumbnail"/>");
});
}
在请求之后数据被视为一个字符串,但是当它来到json时我喜欢在javascript中使用硬编码的迭代方式(不是真的使用jeery的.each()api的资金,所以我对它有疑问上面的代码虽然不确定它是否应该是val,或者我仍然应该识别要访问的变量,例如val.<variablename>
),如下所示:
success: function( data ){
var evaluateddata = eval('('+data+')');
for(val in evaluateddata)
{
$('#pgwrapid').append("<img src="+evaluateddata[val]+" alt="Thumbnail"/>");
}
}
这是迭代json对象的直接javascript方法,但它取决于你哪一个对你来说是理想的(不知怎的,如果你从你的应用程序发布原始json字符串响应会更好。)
我看到了代码。如果你尝试这段代码怎么样:
if(mysql_num_rows($result) > 0){
//Fetch rows
$output = array();
while($row = mysql_fetch_array($result)){
$output[] = $row['imgurl'];
}
echo json_encode($output);
}else{
echo "No results matching family \"$family\"";
}
你的代码实际上是试图为每个imgurl输出一个单独的json值肯定它不会工作,因为你的应用程序将返回的json值将被评估为1并且你的代码正在打印几个json值,这可能会导致错误当你的javascript代码收到它时。
答案 2 :(得分:0)
尝试下面的内容:
success: function( data ){
$.each(data,function(index,val){
$('#pgwrapid').append("<img src='"+val+"' alt='Thumbnail'/>");
});
}
但请先检查val
是否有价值。