Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2014, 03:41   #1
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию Кнопка "Удаление" не срабатывает

Дорогие форумчане, есть массив workers, который получает определенный массив работников (в зависимости от конкретной ситуации), и выводит динамически рядом с фамилией кнопку "Удалить из списка". Набор элементов происходит через
Код:
<a href="list?workers[]=<?php echo *****?>"<!--здесь мы получаем фамилию работника -->
При нажатии на кнопку должно происходить удаление именно данного элемента из массива. Для этого использую unset и индекс элемента -но у меня почему-то не происходит удаление. Пока в тестовом примере использую индекс 0 - чтобы при нажатии на кнопку удалился первый элемент массива, но что-то массив остается без изменений.

Код:
<button type="button" onclick="confirm('Delete?')<?php unset($workers[0]);?>" >Delete</button>
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Blondy вне форума Ответить с цитированием
Старый 24.05.2014, 11:36   #2
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,537
По умолчанию

Php - серверный язык, а все что уже отрисовано в браузере это уже выплюнутый HTML. Посмотрите исходник CTRL+U там пхп кода в помине не будет. Нужно отослать запрос на удаление любым способом (GET, POST, DELETE) на сервер и уже там удалить. Если нужно без перегрузки страницы, то через AJAX.
Gorychev вне форума Ответить с цитированием
Старый 24.05.2014, 13:54   #3
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию

Уважаемый Gorychev, не могли бы Вы дать мне ссылку на похожий пример? Я уже второй день ищу хоть какой-нибудь аналог работающий реализации для кнопки удаление и все что-то не то попадается. Врде бы как задача плевая, решается в одну-две строчки, но я не могу найти решение.
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Blondy вне форума Ответить с цитированием
Старый 24.05.2014, 20:28   #4
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Вам намекнули что вы пытаетесь использовать в браузере , то что уже скомпилировано и является не программой а только текстом или частью DOM HTML.
Всё что отработал php он либо выдал в браузер, либо на сервер, у него нет промежуточного состояния.. всё что в браузере можно обработать Java Script к примеру... но чтобы прошли изменения на сервере надо передать управление серверному скрипту, который это изменение сделает..

Короче ваше действие нужно к примеру завернуть в форму и и POST запросом отправить скрипту, ну или GET.. не важно..Главное чтобы скрипт был, и понял что ему прислали,

либо как сказали выше использовать аякс, но суть та же, все действия происходят на сервере, в браузер попадает только результат.

Последний раз редактировалось vovk; 24.05.2014 в 20:35.
vovk вне форума Ответить с цитированием
Старый 24.05.2014, 22:06   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Blondy, я бы на твое месте заюзал Ajax для посылки команды удаления.
Код:
function foo(ask){
 if(confirm(ask)) ajax.send('delete=yes')
}
...
<button type="button" onclick="foo('Delete?')"</button>
Остается только найти адекватную функу для ajax.send и использовать ее в коде. Можно jQuery взать. Или использовать совет vovk-а.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.05.2014, 17:56   #6
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,537
По умолчанию

Накатал вам простенький пример. Через AJAX, пост запросом, передается ID воркера для удаления. Как видите, в 1-2 строчки такой функционал не решатся)
PHP код:
<?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 ?>

Последний раз редактировалось Gorychev; 26.05.2014 в 09:06.
Gorychev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Постоянно слетает галочка "автоматически" в "Параметры Excel", "Формулы", "Вычисления в книге" Alexsandrr Microsoft Office Excel 4 19.10.2013 14:22
Создать класс "Фигура", от него наследованием создать 3 класса ("треугольник", "четырехугольник", "окружность") funnyy Помощь студентам 3 17.10.2012 17:40
Вывести название соответствующей карты вида "шестерка бубен", "дама червей","туз треф" и т.п. воваава Помощь студентам 3 01.12.2011 12:50
Динамическая память или кнопка "Отмена" и "Назад" Ilnour1986 Microsoft Office Excel 2 27.10.2009 04:49
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04