我通过ajax发送删除文件的请求。第一次,ajax处理请求,但是第二次没有任何人。我得到了“硬刷新”
这是我的代码:
"scripts": {
"ng": "ng",
"start": "ng serve",
"gzipper": "gzipper",
要立即查看我的文件已被删除,请使用此行
<?php
if(isset($_POST['deletefile'])) {
// if is directory -> remove dir
if(is_dir($_POST['deletefile'])){
removeDirectory($_POST['deletefile']);
exit;
}
// else (must be a file) -> unlink file
else {
unlink($_POST['deletefile']);
exit;
}
}
?>
<div class="myFiles">
<form class="sfmform" method="post" action="">
<input type="hidden" name="deletefile" value="<?php echo $dir.'/'.$file; ?>" />
<input type="submit" class="sfmdelete" name="delete" value=" " />
</form>
<script>
$(".sfmform").on('submit',(function(e) {
e.preventDefault();
$.ajax({
url: "",
type: "POST",
data: new FormData(this),
contentType: false,
processData: false,
success: function(response)
{
$('.myFiles').load(document.URL + ' .myFiles');
},
});
}));
</script>
</div> <!-- END myFiles -->
第一个删除请求很好,但是第二个:他进行了一次强制刷新,死在php循环中。我希望在php中的$('.myFiles').load(document.URL + ' .myFiles');
之后执行行exit
,但是第二次不再加载$('.myFiles').load(document.URL + ' .myFiles');
。
我如何使其正常工作?
即使我将js放入就绪处理程序中,它也不起作用!
我在php中使用<div class="myFiles>
的原因:否则exit
会在彼此之下出现2次
答案 0 :(得分:1)
您更改了html
中的.myFiles
,因此第二次动态生成了其中的所有内容。所以您需要Event binding on dynamically created elements? ..更改
$(".sfmform").on('submit',(function(e) {
到
$(document).on('submit' , ".sfmform" , (function(e) {
注意: 对我来说最好不要将$.ajax
与相同文件url:
一起使用对我来说 制作一个单独的文件