Php 在ajax中不使用.load刷新页面内容

Php 在ajax中不使用.load刷新页面内容,php,ajax,laravel-5,Php,Ajax,Laravel 5,我正在使用.load更新我的列表,但这不是正确的方法,因为它每次都嵌套。备选方案是什么。我不熟悉Ajax $(document).on('click','#npDelete',function(){ var dataId = $(this).data("id"); alert(dataId); $.ajax({ type:'get', url:"{!!

我正在使用.load更新我的列表,但这不是正确的方法,因为它每次都嵌套。备选方案是什么。我不熟悉Ajax

    $(document).on('click','#npDelete',function(){
            var dataId = $(this).data("id");

            alert(dataId);
            $.ajax({
                type:'get',
                url:"{!! URL::to('deleteproject') !!}",
                data:{'id':dataId

,},

            success:function(data){
                console.log('success');
                console.log(data);
                console.log(data.length);
                $("#projects1").load("projects");
            },
            error:function(){

            },
        });
});
Projects是包含数据库中项目列表的页面。因此,每次我删除一个项目时,列表都会更新,工作正常,但每次调用ajax请求时,加上1+1次

$("#projects1").html("projects");
我建议你用

$(document).ready(function(){});


在代码的开头,而不是使用$document.on'click',函数{}

快速而肮脏的解决方案是:

仅导入projects1元素,而不是整个文档 替换现有文档的projects1元素的父元素的内容,以便替换projects1元素本身 例如:

…但更好的解决方案是{!!URL::to'deleteproject'!!}返回给出正确或错误响应的JSON,然后删除实际单击的元素:

添加var$clicked_元素=$this;高于var dataId=$this.dataId;当请求成功时,您可以删除$clicked_元素。或者可能是$clicked_element.parentstr.remove之类的东西……但我不得不推测您的HTML是什么样子的


注意:您的HTML意味着您有多个id为npDelete的元素。这是无效的HTML。不要那样做。使用类来标识一组相关元素。仅使用id标识唯一的元素。

$projects1.htmlprojects;-现在,您将用文本项目而不是URL项目的内容替换元素的内容。你弄坏了。$document.readyfunction{};或$target.on'click',函数{};-现在,对于初始页面加载后添加的元素,不会触发click事件。您已将其破坏得更多。不要使用GET请求删除内容!GET请求应该是安全且可重复的!脏的解决方案不起作用它删除一个元素并更新列表而不显示任何内容,就像列表中有四个元素一样,我删除了一个元素,列表用0个元素而不是3个元素更新。错过了ID上的1。提示:如果您对ID进行编号,然后对特定编号的引用进行硬编码,则可能是您做错了什么。
$("#target").on('click',function(){});
$("#projects1").parent().load("projects #projects1");