使用ajax编辑和删除

时间:2015-10-24 15:17:05

标签: php jquery mysql ajax

我尝试使用ajax,php和mysql添加,删除和编辑项目。

一切都很好。但问题是如果我添加项目然后尝试编辑或删除它。它仅在我刷新页面时才有效。

我的代码是:

<form id="frmLink" role="form" action="" method="post">
        <div class="form-group col-md-3">
           <input type="text" class="form-control" id="txtTitle" name="txtTitle" placeholder="De titel"><br />
           <input type="text" class="form-control" id="txtLink" name="txtLink" placeholder="Voeg de link toe">
           <p class="help-block">*Link op de volgende manier toevoegen (<b>www.link.be</b>), dus zonder http://</p>
        </div>
       <div class="form-group col-md-9">
           <textarea class="bs-texteditor form-control" rows="3" placeholder="Beschrijving" name="txtOpis" id="txtOpis"></textarea><br />
       </div>
       <button type="submit" class="pull-right btn btn-success col-md-2" name="btnAddLink" id="btnAddLink" style="margin-right:15px;">Toevoegen</button>
    </form>

$rezultatLinks = mysqli_query($kon, "SELECT * FROM links");
<table id="example1">
<tbody>
while($redLinks = mysqli_fetch_assoc($rezultatLinks)){
  echo "<tr id=\"item-". $redLinks["id"] ."\">
        <td style=\"text-align:center;\">". $redLinks["id"] ."</td>

        <td style=\"text-align:center;\">
           <span id=\"ime-". $redLinks["id"] ."\">". $redLinks["ime"] ."</span><br />
          <input type=\"text\" class=\"editbox\" id=\"imeProm-". $redLinks["id"] ."\" value=\"". $redLinks["ime"] ."\">
        </td>


        <td style=\"text-align:center;\">
            <span id=\"link-". $redLinks["id"] ."\"><a href=\"http://". $redLinks["link"] ."\">". $redLinks["link"] ."</a></span><br />
            <input type=\"text\" class=\"editbox\" id=\"linkProm-". $redLinks["id"] ."\" value=\"". $redLinks["link"] ."\">
        </td>

        <td style=\"text-align:center;max-width:350px;\">
          <span id=\"opis-". $redLinks["id"] ."\">". $redLinks["opis"] ."</span><br />
          <textarea class=\"editbox\" id=\"opisProm-". $redLinks["id"] ."\" rows=\"5\">". $redLinks["opis"] ."</textarea>

        </td>

        <td style=\"text-align:center;\">". $redLinks["dodan"] ."</td>

        <td style=\"text-align:center;\">
            <a class=\"btn btn-danger btn-sm delLink\" title=\"Delete!\" id=\"del-". $redLinks["id"] ."\">
              <i class=\"fa fa-trash-o \"></i> 
            </a>
            <a class=\"btn btn-success btn-sm linkUpdate\" title=\"Veranderen\" id=\"update-". $redLinks["id"] ."\">
                <i class=\"fa fa-pencil-square-o\"></i> 
            </a>

            <br /><a class=\"btn btn-info btn-sm col-sm-12 editbutton\" title=\"Save\" id=\"save-". $redLinks["id"] ."\" style=\"margin-top:5px;\">
             <i class=\"fa fa-floppy-o\"></i> Save
            </a>
            <div class=\"btn-danger\" id=\"errorDel\"></div>
        </td>
    </tr>";     
}

  

我的ajax脚本是:

<script type="text/javascript">

        //Dodavanje linka//
        $(document).ready(function(){
            $("#btnAddLink").on("click", function(e){
                var naslov = $("#txtTitle").val();
                var dodaniLink = $("#txtLink").val();
                var opis = $("#txtOpis").val();

                $.ajax({
                    url : "link-toevoegen.php",
                    method : "POST",
                    cache: false,
                    data : {
                                naslovLinka : naslov,
                                izabraniLink : dodaniLink,
                                opisLinka : opis    
                    },

                    beforeSend: function(){
                        $("#btnAddLink").text("Adding..."); 
                    },

                    success: function(msg){
                        if(msg){
                            $("#example1").append(msg);
                        }else{
                            $("#error").css({"padding":"5px","margin":"10px auto"});
                            $("#error").text("Het toevoegen van de gewenste link was niet succesvol!");
                        }

                        $("#btnAddLink").text("Toevoegen");
                        $("#txtTitle").val("");
                        $("#txtLink").val("");
                        $("#txtOpis").val("");
                    },

                    error: function(){
                        alert("Toevoegen mislukt!");    
                    }

                });

                e.preventDefault();
            });
        });
        //Kraj dodavanja linka//

        //Brisanje linka//
        $(document).ready(function(){
            $(".delLink").on("click", function(e){
                var cijeliID = this.id.split("-")
                var id = cijeliID[1];
                $.ajax({
                    url : "link-wissen.php",
                    method : "POST",
                    cache: false,
                    data : {id : id},


                    success: function(msg){
                        if(msg){
                            $("#item-"+id).animate({"backgroundColor":"#fb6c6c"},300);
                            $("#item-"+id).fadeOut(300);    
                        }else{
                            $("#errorDel").css({"margin":"5px","border-radius":"3px"});
                            $("#errorDel").text("Mislukt!").fadeIn();
                        }
                    },

                    error: function(){
                        alert("Het verwijderen van de link mislukt!");  
                    }
                });
                e.preventDefault();
            });
        });
        //Kraj brisanja linka//

        //Update linka//
        $(document).ready(function(){
            $(".linkUpdate").on("click", function(e){
                var cijeliID = this.id.split("-");
                var id = cijeliID[1];

                $("#ime-"+id).slideUp(700);
                $("#link-"+id).slideUp(700);
                $("#opis-"+id).slideUp(700);

                $("#imeProm-"+id).fadeIn(1000);
                $("#linkProm-"+id).fadeIn(1000);
                $("#opisProm-"+id).fadeIn(1000);
                $("#save-"+id).fadeIn(1000);

                $("#save-"+id).on("click", function(e){
                    var novoIme = $("#imeProm-"+id).val();
                    var noviLink = $("#linkProm-"+id).val();
                    var noviOpis = $("#opisProm-"+id).val();

                    $.ajax({
                        url : "link-update.php",
                        method: "POST",
                        cache: false,
                        data : {id:id, ime:novoIme, updLink:noviLink, opis:noviOpis},

                        beforeSend: function(){
                            $("#save-"+id).text("Saving...");
                        },

                        success: function(msg){
                            if(msg){
                                $("#imeProm-"+id).hide();
                                $("#linkProm-"+id).hide();
                                $("#opisProm-"+id).hide();
                                $("#save-"+id).hide();

                                $("#ime-"+id).text(novoIme).fadeIn(1000);
                                $("#link-"+id).text(noviLink).fadeIn(1000);
                                $("#opis-"+id).text(noviOpis).fadeIn(1000);

                            }else{
                                $("#errorDel").css({"margin":"5px","border-radius":"3px"});
                                $("#errorDel").text("Mislukt!").fadeIn();
                            }
                        },

                        error: function(){
                            alert("Error! De link is niet gewijzigd!");
                        }
                    });
                });

                e.preventDefault();
            });
        });
        //Kraj update linka//
    </script>

Link-toevoegen.php文件是:

    <?php
    session_start();
    include("config.php");
    global $kon;


if(isset($_SESSION["admin"])){
     $naslov = $_POST["naslovLinka"];
     $link = $_POST["izabraniLink"]; 
     $opis = $_POST["opisLinka"]; 
     $dt = new DateTime();
     $datumDodavanja = $dt->format('Y-m-d H:i:s');


     if(mysqli_query($kon, "INSERT INTO links VALUES (NULL, '". $naslov ."', '". $link ."', '". $opis ."', '". $datumDodavanja ."')")){
         $zadnja_rez=mysqli_query($kon, "SELECT * FROM links ORDER BY id DESC LIMIT 1");
         $zadnja_red=mysqli_fetch_assoc($zadnja_rez);
         $zadnja_id=$zadnja_red["id"];

         echo "<tr id=\"item-". $zadnja_id ."\">
                <td style=\"text-align:center;\">". $zadnja_id ."</td>

                <td style=\"text-align:center;\">
                    <span id=\"ime-". $zadnja_id ."\">". $zadnja_red["ime"] ."</span><br />
                    <input type=\"text\" class=\"editbox\" id=\"imeProm-". $zadnja_id ."\" value=\"". $zadnja_red["ime"] ."\">
                </td>


                <td style=\"text-align:center;\">
                    <span id=\"link-". $zadnja_id ."\"><a href=\"http://". $zadnja_red["link"] ."\">". $zadnja_red["link"] ."</a></span><br />
                    <input type=\"text\" class=\"editbox\" id=\"linkProm-". $zadnja_id ."\" value=\"". $zadnja_red["link"] ."\">
                </td>

                <td style=\"text-align:center;max-width:350px;\">
                    <span id=\"opis-". $zadnja_id ."\">". $zadnja_red["opis"] ."</span><br />
                    <textarea class=\"editbox\" id=\"opisProm-". $zadnja_id ."\" rows=\"5\">". $zadnja_red["opis"] ."</textarea>

                </td>

                <td style=\"text-align:center;\">". $zadnja_red["dodan"] ."</td>

                <td style=\"text-align:center;\">
                    <a class=\"btn btn-danger btn-sm delLink\" title=\"Delete!\" id=\"del-". $zadnja_id ."\">
                        <i class=\"fa fa-trash-o \"></i> 
                    </a>
                    <a class=\"btn btn-success btn-sm linkUpdate\" title=\"Veranderen\" id=\"update-". $zadnja_id ."\">
                        <i class=\"fa fa-pencil-square-o\"></i> 
                    </a>

                    <br /><a class=\"btn btn-info btn-sm col-sm-12 editbutton\" title=\"Save\" id=\"save-". $zadnja_id ."\" style=\"margin-top:5px;\">
                        <i class=\"fa fa-floppy-o\"></i> Save
                    </a>
                    <div class=\"btn-danger\" id=\"errorDel\"></div>
                </td>
            </tr>";
     }

}else{
    header("location:../index.php");
}
?>

因此,如果我刷新页面,一切都很好。但问题是,如果我添加项目,它会被添加并显示,但是当我尝试编辑或删除它时,它将无法工作。但如果我刷新页面,那么一切都很完美。

如果我再添加另一个项目,我就无法编辑或删除该新项目,但我可以编辑和删除其他项目而没有任何问题。

由于

1 个答案:

答案 0 :(得分:1)

快速解决方案:

使用此:

$(document).on("click", "a.linkUpdate", function (e) {...}
// And
$(document).on("click", "a.delLink", function(e) {...}

而不是:

$(".linkUpdate").on("click", function (e) {...}
// And
$(".delLink").on("click", function(e) {...}

抱歉,我无法写出整个代码......只需转换您的选择线...您甚至可以转换您的创建选择器线... 我希望这有帮助...