Задать вопрос
@alexsteadfast
I am noob

Как откорректировать AJAX для удаления и редактирования записей?

Вывожу из бд записи, создал кнопки, для их удаления и редактирования, но в результате, кнопки на всех записях воздействуют только на первую запись.
Часть кода:
if (mysqli_multi_query($link, $query)) {
    do {
        /* получаем первый результирующий набор */
        if ($result = mysqli_store_result($link)) {
			
            while ($row = mysqli_fetch_row($result)) {
				// тут выводит столбцы из таблицы
				?> <div style="border-style:groove; width:900px; height:350px; background:black; color:white;  background-color:rgba(0, 0, 0, 0.5); padding-bottom:20px;margin-bottom:10px;">
                    <? /*Форматирую строку с датой */ $expd = explode("-",$row[4]);
                                                      if($row[14]==null){$pic='images\ava.jpg';}else $pic=$row[14];
                echo"<div  style='float:left; position:relative;'><img style='width:50px; height: 50px; margin: 10px;border-radius: 7px 7px 7px 7px;' src='$pic'></div>";

                echo"<a id='User$row[0]' class='userID' target='_blank' href='ProfileUsers.php?name=$row[0]&un1=$row[1]&un2=$row[2]&un3=$row[3]&un4=$row[4]&un5=$row[5]&un6=$row[6]&un7=$row[7]&un8=$row[8]&un9=$row[9]&un10=$row[10]&un11=$row[11]&un12=$row[12]&un13=$row[13]&un14=$row[14]'  style='float:left; position:relative; margin-top: 10px;'>$row[0]</a>";
                    printf("<button class='agaxClose' id='agaxClose' style='margin:5px; border-radius: 10px 10px 10px 10px; float:right;background-image: url(images/crestic.png); background-size: cover;  width: 30px; height:30px;'></button>");

                    printf("<button  class='agaxEdit' id='agaxEdit' style='margin:5px; border-radius: 10px 10px 10px 10px; float:right;background-image: url(images/edit.png); background-size: cover;  width: 30px; height:30px;'></button>");

				echo"<br><br><div style='float:left;position:relative; display:block; height: 16px;'> $expd[2].$expd[1].$expd[0]</div>";
				printf("<br>"); 
				printf("<br>"); 
				printf("<br>");
                printf("<br>");
                    printf("<div id='loader' style='position: absolute;padding-left:365px;display: none'><img src='images/loader.gif' /></div>");

                    if($row[5] != null) {
                        printf("<p id='textUsers$row[0]' class='messageID' style='display:block; padding-left:100px; width:400px; float:left; word-wrap: break-word;'>%s</p><img style='width:300px; height:200px; padding-left:0px;' src='source\%s'>", $row[1], $row[5]);
                    }else  printf("<p id='textUsers$row[0]' class='messageID' style='display:block; padding-left:100px; width:400px; float:left; word-wrap: break-word;'>%s</p><img style='width:300px; height:200px; padding-left:0px;' src='images\pic.jpg'>",$row[1]);
                        ?></div><?
            }
            mysqli_free_result($result);
        }
        /* печатаем разделитель */
        if (mysqli_more_results($link)) {
            printf("-----------------\n");
        }
    } while (mysqli_next_result($link));
}

<script type="text/javascript">
    $(document).ready(function(){
        $(".agaxClose").click(function(){
            var result = confirm('Удалить?');
            if(result) {
                //узнаём id по классу
                var MessId = $(".messageID").attr('id');
                var userId = $(".userID").attr('id');
                var User = document.getElementById(userId).textContent;
                var UserMess = document.getElementById(MessId).textContent;
                $.ajax({
                    url: 'DelPost.php',
                    data: {nameDel: User, textDel: UserMess},
                    success: function(){
                        alert('Запись успешно удалена');
                    },
                    type: 'GET',
                    beforeSend: function () {
                        $("#loader").css("display", "block");
                        $("#loader").animate({opacity: 1}, 500);
                    }
                }).done(function (data) {
                    $("#loader").animate({opacity: 0}, 500, function () {
                        $("#loader").css("display", "none");
                    });
                });
                //после отработки функции, делаю редирект, чтобы увидеть результат.
                window.location.href = 'index.php';
            }});
    });
</script>

<script type="text/javascript">
    $(document).ready(function(){
        $(".agaxEdit").click(function(){
            var result = prompt('Введите текст для изменения сообщения');
            if(result) {
                //узнаём id по классу
                var MessId = $(".messageID").attr('id');
                var userId = $(".userID").attr('id');

                var User = document.getElementById(userId).textContent;
                var UserMess = result;
                var oldText = document.getElementById(MessId).textContent;
                $.ajax({
                    url: 'RedactPost.php',
                    data: {nameUpp: User, textUpp: UserMess, oldText: oldText},
                    success: function(){
                        alert('Запись изменена');
                    },
                    type: 'GET',
                    beforeSend: function () {
                        $("#loader").css("display", "block");
                        $("#loader").animate({opacity: 1}, 500);
                    }
                }).done(function (data) {
                    $("#loader").animate({opacity: 0}, 500, function () {
                        $("#loader").css("display", "none");
                    });
                });
                //после отработки функции, делаю редирект, чтобы увидеть результат.
                window.location.href = 'index.php';
            }});
    });
</script>
  • Вопрос задан
  • 316 просмотров
Подписаться 1 Простой 4 комментария
Решения вопроса 1
Exploding
@Exploding
wtf?
Вот Вам подсказка из Вашего же кода:

//узнаём id по классу

Вдумайтесь в эту фразу и все починится! Наверно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы