【问题标题】:Image Not Appearing when AJAX Call ReturnsAJAX 调用返回时图像未出现
【发布时间】:2012-12-18 17:08:11
【问题描述】:

我有这个 AJAX 搜索功能,它可以搜索表中的文件列表,然后根据用户的输入更新结果。现在,我在表格中的文件名旁边有一个下载按钮(这是一个图像),使用户能够下载文件。问题是当 AJAX 调用返回时,它只是拒绝显示图像。我不知道我是否有语法错误,或者这根本不可行。代码在这里:

echo "<tr>

<td class='tlong'>".$state['title']."</td>

<td style='font-size:11px;' class=''>".$state['filesize']."
<a style='padding-left:px;' href='../downloads/".$state["filename"]."'><img src='../images/footer/downloadImage.png' alt='' style='width:10px;height:10px;'/></a>
</td>

</tr>";
}

这是 AJAX 方法中的代码。我首先从数据库中提取标题,然后是文件大小,然后它应该显示使用户能够下载该文件旁边的图像。但图像只是没有显示。但是,当我指定一个时,它会放置替代文本。有什么想法吗?

【问题讨论】:

  • 当您在success 函数中执行console.log(data) 时,您会在控制台中看到什么?
  • 作为设计偏好,我建议您让 PHP 返回原始数据并让客户端对其进行解析和处理。
  • 如果图片没有显示,但它的alt文本显示,则表示找不到图片路径。
  • Matanya 我正在正确检索结果并在表格中显示所需文件。但图像只是不加载。 Waleed 我已经检查了无数次路径,我什至将图像放在 AJAX 方法的同一个文件夹中。没有运气。
  • 不,原来是路径问题。 Semsem 先生的澄清解决了它:)

标签: php javascript ajax image


【解决方案1】:

检查图片src的路径和运行AJAX请求的页面。换句话说,如果你直接将它插入到该页面中,图像是否正确呈现?

// In the page that run AJAX
<img src='../images/footer/downloadImage.png' />

假设如下目录结构:

request.html
js/ajax_target.html
js/imgs/downloadImage.png

如果 downloadImage 将在 ajax_target.html 中呈现,它的 src 将是 imgs/downloadImage.png,但如果它将从 request.html 呈现,它应该是 js/ imgs/downloadImage.png

【讨论】:

  • 我检查了四次。甚至将图像放在 AJAX 请求的同一目录中。什么都没有。
  • 是的,当图像设置到页面中时,图像可以正确呈现。当页面最初加载时,它具有在数据库中布局的所有文件,旁边有图像。当我发起 AJAX 请求时它消失了。
  • 我的 AJAX 调用如下: function getStates(value){ $.post("update/getStates.php", {partialState:value}, function(data){ $(".results" ).html(数据); });你建议我把 js/imgs/downloadImage.png 放在哪里?
  • @Frisbetarian 从来没有,我不建议改变你的目录结构,我只是假设图像路径和每个不同页面中的 img 标签的效果示例。
  • 啊哈!谢谢!我没有那样想。我是根据我的 ajax 方法的位置而不是从我调用该方法的位置来拉取图像路径的。非常有见地,你有我的感谢朋友:)
猜你喜欢
  • 1970-01-01
  • 2016-03-25
  • 1970-01-01
  • 1970-01-01
  • 2018-02-20
  • 1970-01-01
  • 2016-07-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多