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

Я пробовал это, но не работает

   <script>
function delete_(pid){
$.ajax({
   type: "POST",
   url: "include/post.delete.php",
   data: "pid="+pid,
   success: function(){
   $("#comment-"+pid).remove();
   }
 });
}
</script>
<? if($streamitem_data['streamitem_creator']==$_SESSION['id']){
echo "<div style='cursor:pointer;' onclick=\"delete_('".$streamitem_data['streamitem_id']."');\">Delete comment</div>";

Но это не дает мне нужных мне результатов. Может я что-то делаю не так, но мне нужна помощь, если возможно.

1
dave 15 Июл 2012 в 03:53
Какие результаты это дает вам?
 – 
Waleed Khan
15 Июл 2012 в 04:21
Его удаляют, но страница просто обновляется и возвращает меня наверх. Так что работает. Но я бы хотел, чтобы он удалил комментарий именно там, где он находится, не обновляя страницу, и, если возможно, исчезнет div.
 – 
dave
15 Июл 2012 в 04:24
Код JavaScript, который вы разместили выше, не может быть причиной этого. Однако в конце вашего HTML-кода есть форма. Отправлено ли это для удаления комментария? Вам нужно будет сделать это с помощью JavaScript (т.е. без отправки формы) ...
 – 
Aletheios
15 Июл 2012 в 04:28
То есть удалить комментарий ага. Как мне его изменить, чтобы он работал? Спасибо за вашу помощь.
 – 
dave
15 Июл 2012 в 04:31
Извините, только что исправил свой комментарий, я что-то пропустил в вашем коде. Убедитесь, что вы не отправили форму, и проверьте, правильно ли работает вызов AJAX. Смотрите мой ответ ниже ...
 – 
Aletheios
15 Июл 2012 в 04:32

1 ответ

Лучший ответ

Не используйте форму с действием отправки для удаления этого комментария. При отправке формы страница автоматически перезагружается. Вместо этого используйте простой элемент с обработчиком onclick для запуска запроса AJAX:

<div onclick="delete_('anyID');">Delete comment</div>

РЕДАКТИРОВАТЬ: Пример.

<head>
<script src="jquery.min.js"></script>
<script type="text/javascript">
function delete_(pid){
$.ajax({
   type: "POST",
   url: "include/post.delete.php",
   data: "pid="+pid,
   success: function(){
   $("#comment-"+pid).remove();
   }
 });
}
</script>
</head>

<body>
<div id="comment-123">This is a comment.</div>
<div onclick="delete_('123');">Delete comment</div>
</body>
5
Aletheios 15 Июл 2012 в 05:24
Итак, я удаляю полную форму и заменяю ее указанным выше триггером?
 – 
dave
15 Июл 2012 в 04:36
Да, я бы предложил это. Я не полностью понял ваш код, поскольку он немного загроможден, но если вы не хотите, чтобы страница обновлялась, вы должны избавиться от формы (или, скорее, от события отправки формы). ;)
 – 
Aletheios
15 Июл 2012 в 04:39
Я обновил свой оригинальный пост тем, что вы предложили выше .. Это не работает. : /
 – 
dave
15 Июл 2012 в 05:14
1
Вы можете рассмотреть возможность использования формы, так как тогда ваш сайт сможет продолжить работу с отключенным JS. Если JS включен, вы можете добавить обработчик отправки в форму и отправить через AJAX.
 – 
Michael Mior
15 Июл 2012 в 05:24
Спасибо. Даст ему удар
 – 
dave
15 Июл 2012 в 05:34