Перейти к содержимому


Ребят нужна помощь ajax


Сообщений в теме: 3

#1 xeon

xeon

    Активный участник

  • Пользователи
  • PipPipPip
  • 496 сообщений
  • Пол:Мужчина
  • Город:MSK
  • Интересы:PHP, MySQL, CSS, XML, HTML, JavaScript
  • Форум:IPB 3.2, IPB 3.1
  • Версия MKP:R1.0.2, R1.0.1

Отправлено 06 May 2014 - 04:53

ребят такая проблема к модулю своему написал  ajax коментарии без обновления страницы также начал писать ajax удоление коментариев и столкнулся с проблемой он удоляет свеже добавленый коментарий а некоторый ты например хочеш удолетить вот скрипты где моя ошибка всю голову сломал

это функция удоления
function delete_komment(){
		global $mkportals, $DB,  $_FILES, $mklib, $mklib_board;
   
		if(!$mkportals->member['g_access_cp']) {
			$message = "{$mklib->lang['re_nosend']}";
			$mklib->error_page($message);
			exit;
		}
$id = intval($mkportals->input['id']);
$DB->query("DELETE FROM mkp_team_koment WHERE id = $id");

if($DB == true){
echo json_encode(array('del' => $id));
	  
	   }

$DB->close_db();
	exit;
}

это функция ajax
	function delcomments(){
		var del = $("#commentsall");
$(".delmess").click(function(e){
e.preventDefault();
$.ajax({
url: "index.php?ind=team&op=delete_komment&id="+$(del).attr("value"),
type: "GET",
dataType: "json",
timeout: 10000,
success: function(data){
$(del).slideUp(500, function(){
$(this).remove();
});
},
error: function(xhr, status){
alert("Error json "+status+". Answer: " + xhr);
}
	  });
	});
}

это форма с кнопкой удалить
if($mkportals->member['g_access_cp']){
$delcom ="&nbsp; <img class=\"delmess\" src=\"{$mklib->images}/drop.png\" title=\"Delete\">";
}

$koment_team .= "
<div id=\"commentsall\" value=\"{$idk}\">
<table style=\"padding:1px 5px\" width=\"100%\" cellspacing=\"3\" cellpadding=\"0\" class=\"koment\">
<tr class=\"odd\">
<td class=\"koment\" valign=\"top\" style=\"width:50px;padding:0 0px;\">{$avatarsi}</td>
<td valign=\"top\">
<table width=\"100%\">
<tr>
<td style=\"width:450px\">
<a href=\"/index.php?ind=profile&amp;id={$pid}\">Написал[а]: {$user}</a>
</td>
<td align=\"right\"> {$data} {$delcom}</td>
</tr>
</table>
&nbsp;{$post}
</td>
</tr>
</table> 
</div>
";
}

помогите разобратся

#2 Снеговик

Снеговик

    Активный участник

  • Модераторы
  • PipPipPip
  • 1679 сообщений
  • Пол:Мужчина
  • Форум:IPB 2.3.x
  • Версия MKP:C1.2.2 R0.0.2

Отправлено 10 May 2014 - 19:57

нет идентификации каждого из выведенного комментарии.  поэтому и удаляется последний.
необходимо идентифицировать каждый из комментариев. а именно в функцию delcomments() передавать id комментария

#3 Legion Leonhart

Legion Leonhart

    Активный участник

  • Пользователи
  • PipPipPip
  • 234 сообщений
  • Пол:Мужчина
  • Форум:IPB 1.x
  • Версия MKP:M1.1.2b

Отправлено 29 May 2014 - 14:29

Снеговик, ты не совсем прав, он судя по всему юзает JQuery в этом случае не обязательно передавать id через саму функцию.

xeon, твой косяк в этом:
<div id=\"commentsall\" value=\"{$idk}\">
и в этом
var del = $("#commentsall");
id у блока должен быть уникален для страницы, а у тебя получается что у всех комментов стоит id=\"commentsall\" , а раз у всех комментов id одинаков, java берет самый последний. Поэтому у тебя удаляется последний коммент на странице.

#4 xeon

xeon

    Активный участник

  • Пользователи
  • PipPipPip
  • 496 сообщений
  • Пол:Мужчина
  • Город:MSK
  • Интересы:PHP, MySQL, CSS, XML, HTML, JavaScript
  • Форум:IPB 3.2, IPB 3.1
  • Версия MKP:R1.0.2, R1.0.1

Отправлено 02 June 2014 - 19:12

Просмотр сообщенияLegion Leonhart (29 May 2014 - 14:29) писал:

Снеговик, ты не совсем прав, он судя по всему юзает JQuery в этом случае не обязательно передавать id через саму функцию.

xeon, твой косяк в этом:
<div id=\"commentsall\" value=\"{$idk}\">
и в этом
var del = $("#commentsall");
id у блока должен быть уникален для страницы, а у тебя получается что у всех комментов стоит id=\"commentsall\" , а раз у всех комментов id одинаков, java берет самый последний. Поэтому у тебя удаляется последний коммент на странице.

спасибо за подсказку и за советы (но я уже подругому написал )
это что я вовсе кнопки запихал
onclick="dellcomment($idk)"
а дальше немного поправил javascript код и всё шикарно заработало :)



Ответить



  


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных