通过json jquery插入检索到的图像路径数据,并插入img标签src

时间:2012-01-07 04:39:46

标签: php jquery mysql json

我通过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 =“”

3 个答案:

答案 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是否有价值。