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


Insert retrieved data of image paths via json jquery and insert in img tag src

i m通过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="

下面试试:

   success: function( data ){
             $.each(data,function(index,val){
                $('#pgwrapid').append("<img src='"+val+"' alt='Thumbnail'/>");

                }); 
            }

但请先检查您是否在val中获得值。

您的引号有误。您需要对alt='Thumbnail'使用单引号,或者转义已经在使用alt='"Thumbnail'" 的双引号

试试这个代码:

success: function( data ){
var evaluateddata = eval('('+data+')');
$.each(evaluateddata,function(index,val){
   $('#pgwrapid').append("<img src="+val+" alt="Thumbnail"/>");
 });
}

数据在请求后被视为字符串,但当它是json时,我喜欢在javascript中使用硬编码的迭代方式(实际上并不是使用jquery的.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价值将被评估为一个,并且您的代码正在打印多个json值,当您的javascript代码接收到这些值时,这些值可能会导致错误。