У меня есть таблица результатов, которая позволяет пользователям удалять библиотечные книги из их списка выбранных книг на этапе проверки. Я реализовал простой метод AJAX, так что, когда пользователь нажимает кнопку «Удалить» рядом с книгой в списке, она удаляет ее со страницы без перезагрузки страницы - все это хорошо работает.AJAX Script - теперь нужно обновить более одного
Теперь мне также нужно обновить еще один элемент на странице, который обрабатывает разбивку на страницы, показывающую, сколько выбранных книг у них есть. В верхней части списка есть это резюме пагинации:
<div class="recordlist_nav">Displaying records 1 - 10 of 10 records selected</div>
Как и удаление книги из списка я также необходимо обновить это, например, если они удалены одну книги он должен измениться:
<div class="recordlist_nav">Displaying records 1 - 9 of 9 records selected</div>
Я могу сгенерировать обновленную строку, но не уверен, как получить мой скрипт AJAX для одновременного обновления нескольких элементов. Вот мой сценарий:
<script type="text/javascript">
function deleteRecord(recid,articleID) {
// Allocate an XMLHttpRequest object
if (window.XMLHttpRequest) {
// IE7+, Firefox, Chrome, Opera, Safari
var xmlhttp=new XMLHttpRequest();
} else {
// IE6, IE5
var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
// Set up the readyState change event handler
xmlhttp.onreadystatechange = function() {
if ((this.readyState == 4) && (this.status == 200)) {
document.getElementById("selectedRecord" + recid).innerHTML=xmlhttp.responseText;
}
}
// Open an asynchronous POST connection and send request
xmlhttp.open("POST", "delete_record.php", true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("recid="+recid+"&articleID="+articleID);
return false; // Do not follow hyperlink
}
</script>
В настоящее время delete_record.php просто эхо из пустой строки, когда она удаляет выбранную запись:
$result = '';
echo $result ;
Я хранящий обновленный заголовок постраничной в переменной $ навигации , Теперь мне нужно передать это обратно скрипту, и этот скрипт заменит содержимое с содержимым переменной $ navigation.
Я восхищаюсь вашим пуристским подходом, но использование библиотеки, такой как jQuery, скроет большую часть этого кода и позволит сосредоточиться на фактическом приложении (а не на его механизме). – Nick
Посмотрите на мой ответ по адресу http://stackoverflow.com/questions/15713646/how-to-structure-javascript-when-including-another-php-file/15713778#15713778, который поместит вас на правильный путь. – plalx
В основном вы хотите запускать события, чтобы сообщить частям вашего приложения, что что-то интересное и эти прикладные модули/части/разделы будут слушать и реагировать. В вашем случае, когда записи удаляются, у вас может быть событие 'recorddelete', которое будет запущено. Затем ваша секция разбивки на страницы будет прослушивать событие и соответствующим образом обновлять DOM. – plalx