누군가가 나를 도와 줄 수 있는지 궁금해합니다.jQuery로 XML 노드 제거
사용자가 업로드 한 이미지 갤러리를 볼 수 있도록 this 페이지를 정리했습니다. UploadedFiles/userid/locationid/image
등 즉 설명 xml 파일에 저장되어있는 이미지에 대한 세부 정보는 실제 이미지와 같은 디렉토리에 files.xml
라고 : 초기 업로드시
, 실제 이미지는 다음과 같은 파일 구조에 저장됩니다.
이제 사용자가 이러한 이미지를 삭제할 수 있도록 노력하고 있습니다.
각 이미지 아래에 삭제 아이콘으로, 나는 도움을 받아 들여서 물리적 이미지를 성공적으로 삭제하는 다음을 함께 쓴다.
'삭제 아이콘 온 클릭 이벤트'
<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
입니다 남겼하는 방법에 대한 연구의 꽤 많은 일을했습니다. 간단한 튜토리얼을 따라 나는 내 '온 클릭 이벤트'스크립트의 끝에 다음을 추가 : 나는 특정 오류가 발생하지 않지만,
var doc = $(files.xml);
doc.find('file_name:src').remove();
불행하게도, 노드는 파일에서 삭제되지 않습니다. 나는 XML에 관해서라면 완전한 초보자이다. 그래서 나는 이것을 너무 단순하게보고있다.
나는 단지 누군가가 이걸 좀 봐 주겠다는 것을 궁금해했고, 내가 잘못 가고있는 곳을 알려 주었다.
많은 감사와 관련
안녕하세요 @Amogh Talpallikar, 많은 시간을 내 게시물에 회신 해 주셔서 감사합니다. 저는 프로그래밍의이 요소에 정말 새로운 점이 있습니다. 저는 여러분이이 부분에 대해 제멋대로 할 수 있는지 궁금해했습니다. 그래서 어디에서 시작해야하는지 알 수 있습니다. 많은 감사와 친절한 답변 – IRHM
xml 파일에서 노드를 삭제하려면 delete.php를 사용해야합니다. 실제 이미지를 삭제할 때마다 XML에서 해당 노드를 삭제해야합니다. –
PHP XML DOM 조작을 점검하고, PHP를 사용하여 XML DOM을로드 한 다음 노드를 제거하고 다시 저장하십시오. –