Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Ajax和SQL时,数据库中的图像不会显示在我的HTML中_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 使用Ajax和SQL时,数据库中的图像不会显示在我的HTML中

Javascript 使用Ajax和SQL时,数据库中的图像不会显示在我的HTML中,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我需要帮助检索我上传到数据库的图像,以显示在我的HTML中。如果有人能帮助我,我将不胜感激 这是我的Ajax代码 $(document).ready(function() { $.ajax({ url:"../controller/image.php", dataType:"json", type:"POST", data:{ method:"getall" }, su

我需要帮助检索我上传到数据库的图像,以显示在我的HTML中。如果有人能帮助我,我将不胜感激

这是我的Ajax代码

$(document).ready(function() {
    $.ajax({
        url:"../controller/image.php",
        dataType:"json",
        type:"POST",
        data:{
            method:"getall"
        },
        success: function(resp) {
            console.log(resp);
            for(var i = 0; i<resp.length; i++){
                var img = document.createElement("img");
                var div = document.createElement("div");
                var h = document.createElement("h4");
                img.innerHTML = img.src + ":"+resp[i].title;
                img.onclick = function() {
                    console.log(resp);     
                }
            }
        }
    });
});

我已经将我的图像加载到数据库中,我可以通过控制台看到它们是它们的。。但是看不见他们。谢谢。

试试这个jquery方法,在for循环中添加图像

$('id').append('<img id="image" src="+resp[i].image+" />')
$('id')。追加(“”)
或者,如果仍然面临问题,请检查图像路径


您必须使用base64编码的图像数据才能做到这一点。你可以找到有问题的例子。为方便起见,以下是一个示例:

$(document).ready(function() {
$.ajax({
    url:"../controller/image.php",
    dataType:"json",
    type:"POST",
    data:{
        method:"getall"
    },
    success: function(resp) {
        for(var i = 0; i<resp.length; i++){
            var img = document.createElement('img');
            img.src = "data:image/png;base64," + resp[i].data;
            document.body.appendChild(img);
        }
    }
});

根据你的新评论,我有另一个答案:

  • 不要使用图像的innerHTML属性。这是错误的

    img.innerHTML = img.src + ":"+resp[i].title;
    
    相反,您必须填写
    src
    属性:

    img.src = resp[i].link
    
  • 代码中没有插入到页面。创建元素(例如,
    document.createElement
    )不会将其插入页面,而是只在内存中创建。要显示创建的图像,必须将它们添加到任何页面元素中。从示例到页面正文:

    document.body.appendChild(img)
    
    或任何其他元素,通过选择它:

    document.getElementById('imagesWrapper').appendChild(img)
    
  • 所有代码都假定图像已正确上载到服务器,并且其相对路径存储在数据库字段
    链接中


  • img.innerHTML=img.src+“:”+resp[i]。标题;我也知道这行的一部分是错误的,但我不认为这行是问题,除非它是,我错过了一些东西谢谢你,但我这里有一个图像上传器,有一个单独的页面,显示所有上传的照片从谁登录和上传图片,所以我不确定当用户插入路径时如何确保这些图像是base64编码的
    document.body.appendChild(img)
    
    document.getElementById('imagesWrapper').appendChild(img)