[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Удаляется верхний элемент массива (PHP+Ajax)
Вячеслав
Всем добрый вечер!
Возникла проблема при удалении записей (админка).
Суть проблемы такая: после выборки из бд всех комментариев и помещения всей информации (время публикации, автор, текст комментария) возле каждого есть кнопка "удалить" (и "редактировать"). Так вот при удалении удаляется всегда верхняя запись, а не та, возле которой находится сама кнопка "удалить". Работает всё с помощью ajax. Он выбирает значение value из элемента по id, и, соответственно, когда JS-код срабатывает, он просто хватает первую попавшуюся запись.
Вот вывод сообщений из бд:

$result = mysql_query("SELECT * FROM testtesttest ORDER BY `id` DESC");
echo '<ol>';
while ($row=mysql_fetch_array($result)){
$id = $row['id'];
$text = $row['text'];
{
echo '<li><a href="docs/'. $id.'">'.$id.'</a>
<p>'
.$text.'</p>
<input type="submit" name="submit" value="удалить" onclick="delete_test()"></input>
<input type="hidden" id="id" name="id" value="'
.$id.'"></input>
</li><br>'
;
}
}

echo '</ol>';

А вот аякс:

function delete_test() {
var status=$('#info');
var a = document.getElementById("id").value; // Считываем значение a
// var f = document.getElementById("City").value; // Считываем значение f

var xmlhttp = getXmlHttp(); // Создаём объект XMLHTTP
xmlhttp.open('POST', 'action/delete_test.php', true); // Открываем асинхронное соединение
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); // Отправляем кодировку
xmlhttp.send("id=" + encodeURIComponent(a)); // Отправляем POST-запрос
xmlhttp.onreadystatechange = function() { // Ждём ответа от сервера
status.html('<img src="anim/loader.gif" alt="Загрузка...."/>');
if (xmlhttp.readyState == 4) { // Ответ пришёл
if(xmlhttp.status == 200) { // Сервер вернул код 200 (что хорошо)
document.getElementById("info").innerHTML = xmlhttp.responseText; // Выводим ответ сервера

}
}
}
;
}

Документ обработки высылать смысла нет, так как там всё работает железно: всё удаляется, но только вот удаляется не то, что нужно. Ajax тоже работает замечательно, только вот хватает не тот айди.
Предваряя возможные замечания, скажу, что аналогичный код на другой странице работал отлично, удалялась каким-то образом именно та запись, которая нужна. С целью найти, в чем подвох, я менял <ol> и <li> на <div> и <p> соответственно, все перестало работать.
Вернул всё как прежде — а работать так и осталось неправильно. То есть чудеса. Может быть проблема в сервере?
Танцевал с бубном по-всякому: укладывал всё в <форму>, менял кнопку submit на button, а всё не работает. И я бы не писал сюда, если бы так было всегда. Ведь работало по какой-то причине! 4-й день голову ломаю.
Спасибо.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.