我想知道是否有人可以帮助我。
我整理了这个页面,允许用户查看他们上传的图片库。
初始上传时,物理图像保存在以下文件结构中:
UploadedFiles/userid/locationid/image
图像的详细信息(即描述等)保存在files.xml
与物理图像位于同一目录中的 xml 文件中。
我现在正在努力让用户能够删除这些图像。
通过每个图像下方的删除图标,我承认在一些帮助下,将以下内容组合在一起,成功删除了物理图像。
'删除图标 Onclick 事件'
<script type="text/javascript">
Galleria.ready(function() {
this.$('thumblink').click();
$(".galleria-image").append(
"<span class='btn-delete ui-icon ui-icon-trash'></span>");
$(".btn-delete").live("click", function(){
var img = $(this).closest(".galleria-image").find("img");
// send the AJAX request
$.ajax({
url : 'delete.php',
type : 'post',
data : { image : img.attr('src') },
success : function(){
alert('Deleting image... ');
img.parent().fadeOut('slow');
}
});
return false;
});
});
</script>
原来的'delete.php'
<?php
if (!empty($_POST)) {
$image = $_POST['image'];
if (file_exists($image)) {
unlink($image);
}
}
?>
更新了'delete.php'
<?php
if (!empty($_POST)) {
$image = $_POST['image'];
if (file_exists($image)) {
unlink($image);
}
}
$doc = new DOMDocument;
$doc->load('files.xml');
$thedocument = $doc->documentElement;
$list = $thedocument->getElementsByTagName('files');
$nodeToRemove = null;
foreach ($list as $domElement){
$attrValue = $domElement->getAttribute('file_name');
if ($attrValue == 'image') {
$nodeToRemove = $domElement;
}
}
if ($nodeToRemove != null)
$thedocument->removeChild($nodeToRemove);
echo $doc->saveXML();
?>
我遇到的问题是从 xml 文件中删除 xml 节点。我在下面提供了 XML 文件的摘录。
<?xml version="1.0" encoding="utf-8" ?>
- <files>
<file name="stag.jpg" source="stag.jpg" size="21341" originalname="stag.jpg" description="No description provided" userid="1" locationid="1" />
</files>
我已经对如何解决这个问题进行了大量研究,发现 jQuery 有它自己的命令,即jQuery.remove
我认为可以删除节点。按照简短的教程,我在“Onclick Event”脚本的末尾添加了以下内容:
var doc = $(files.xml);
doc.find('file_name:src').remove();
不幸的是,虽然我没有收到特定错误,但该节点并未从文件中删除。当谈到 XML 时,我是一个完整的初学者,所以也许我看得太简单了。
我只是想知道是否有人可以看看这个,让我知道我哪里出错了。
非常感谢和问候