从ajax响应中获取图像src

时间:2013-05-17 04:54:31

标签: php jquery ajax image response

我正在尝试使用带有ajax的php处理程序获取的图像路径来更改图像源。

我所追捕的是:“img / blah.jpg”

这是我的ajax:

$('.name').click( function() {
    //var e = $(this).attr('src','img/no.png'); //this works

$.ajax({ 
        url:'handler.php?blahid='.$idnum,
        type:"GET", 
        success: function(data)
        {
            var f = $(this).attr("src", data); //$(this) is the image I click on that I want to replace
            console.log(f);
        },
        error: function(jqXHR, textStatus, errorThrow)
        {
            debugger;
        }
    })
}

当我点击我要改变的图像时,ajax就能完成它的工作。也许我以不正确的方式使用响应数据。我使用控制台日志来查看我得到的内容并返回了一个对象。所以我想我的问题是:我现在正在做的事情不起作用,我不知道为什么。如果您要我澄清任何事情,请告诉我。提前谢谢。

4 个答案:

答案 0 :(得分:2)

使用

$('.publish').click( function() {
    var self=this; // add this line   
    $.ajax({ 
            url:'handler.php?blahid='.$idnum,
            type:"GET", 
            success: function(data)
            {
                var f = $(self).attr("src", data); // use self instead of this
                console.log(f);
            },
            error: function(jqXHR, textStatus, errorThrow)
            {
                debugger;
            }
     });
}

答案 1 :(得分:0)

试试这个

var my_data = data;
var f = my_data.find('img').attr("src");

或者您可以直接使用

$(data).find('img').attr('src');

答案 2 :(得分:0)

示例中的

$(this).attr("src", data); $(this)指向ajax请求。要更改图像,您可以提供图像ID,如下所示$('#imageId').attr("src", data);

答案 3 :(得分:0)

对于数据位置图像,请确保在数据库中,例如http:http://localhost/new_accemo_upd_1/data/scan-yr-201 ...

从添加数据:

data.append('gambar', $('input[type=file]')[0].files[0]);

保存数据(服务器)

'gambar' : base_url($_FILES['gambar'])

如果我们想编辑图片:

$.ajax({
    url : "<?php echo site_url(name-url)?>/",
    type: "GET",
    dataType: "JSON",
    success: function(data)
    {
       $('[name="logo"]').attr("src", data.logo);

    },
    error: function (jqXHR, textStatus, errorThrown)
    {
        alert('Error get data from ajax');
    }
});

查看HTML:

<img src="" name="logo"/>