Последние записи
- TChromium (CEF3), сохранение изображений
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
- Взаимодействие через командную строку
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
- Сравнение языков на массивах. Часть 2
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
25th
Май
Кнопка «Удаление» не срабатывает
Posted by maloy under php
Blondy
Дорогие форумчане, есть массив workers, который получает определенный массив работников (в зависимости от конкретной ситуации), и выводит динамически рядом с фамилией кнопку «Удалить из списка». Набор элементов происходит через
<a href="list?workers[]=<?php echo *****?>"<!--здесь мы получаем фамилию работника -->
При нажатии на кнопку должно происходить удаление именно данного элемента из массива. Для этого использую unset и индекс элемента -но у меня почему-то не происходит удаление. Пока в тестовом примере использую индекс 0 — чтобы при нажатии на кнопку удалился первый элемент массива, но что-то массив остается без изменений.
<button type="button" onclick="confirm('Delete?')<?php unset($workers[0]);?>" >Delete</button>
Gorychev
Php — серверный язык, а все что уже отрисовано в браузере это уже выплюнутый HTML. Посмотрите исходник CTRL+U там пхп кода в помине не будет. Нужно отослать запрос на удаление любым способом (GET, POST, DELETE) на сервер и уже там удалить. Если нужно без перегрузки страницы, то через AJAX.
Stilet
Blondy, я бы на твое месте заюзал Ajax для посылки команды удаления.
function foo(ask){
if(confirm(ask)) ajax.send('delete=yes')
}
...
<button type="button" onclick="foo('Delete?')"</button>
Остается только найти адекватную функу для ajax.send и использовать ее в коде. Можно jQuery взать. Или использовать совет vovk-а.
Gorychev
Накатал вам простенький пример. Через AJAX, пост запросом, передается ID воркера для удаления. Как видите, в 1-2 строчки такой функционал не решатся)
<?php
$aWorkers = array('surname1', 'surname2', 'surname3', 'surname4');
if (isset($_POST['iWorkerID']) && isset($aWorkers[$_POST['iWorkerID']])) { //отловили запрос на удаление
// надо понимать, что нужно удалить данные не только из массива(как это сделано здесь),
// но и из источника хранения этих данных(из базы данных, файла или где они у вас хранятся)
unset($aWorkers[$_POST['iWorkerID']]);
echo $_POST['iWorkerID'];
return;
};
?>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<?php
if (!empty($aWorkers)) {
?>
<?php foreach ($aWorkers as $iWorkerID => $sWorker) {
?>
<p id="worker-<?php echo $iWorkerID ?>">
<?php echo $sWorker ?>
<button type="button" onclick="removeWorker('<?php echo $iWorkerID ?>');" >Delete</button>
</p>
<?php }
?>
<script>
function removeWorker(iWorkerID) {
if (iWorkerID && confirm('Delete?')) {
$.ajax({
url: '',
dataType: "text",
type: "POST",
context: this,
data: {
iWorkerID: iWorkerID
},
success: function(iRemoveWorker) {
$('#worker-' + iRemoveWorker).remove();
}
});
}
return false;
}
</script>
<?php } ?>
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)