Покинул форум
Сообщений всего: 40
Дата рег-ции: Май 2011
Помог: 0 раз(а)
Есть готовая страница на php, работает идеально, но есть проблема. После того как пользователь проставит все галочки, ему нужно нажимать кнопку, а как можно избавиться от этого? Подкажите плиз реализацию чего-нибудь такого. Нужно чтобы просто значение чекбокса в таблице менялос с 0 на 1 без кнопки
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
Помог: 53 раз(а)
подключаете jquery
всем чекбоксам (которые надо обрабатывать) выборка
цепляете на событие onClick, проверку статуса, и методом jQuery[dot]get отправляете соответствующие данные PHP скрипту, который в свою очередь вносит нужные изменения гдето там в закромах
можно сделать без jquery, но тогда возни чуть больше.
DlTA
Отправлено: 17 Июня, 2011 - 11:52:21
Постоянный участник
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
Помог: 53 раз(а)
вот вариант реализации без использования jquery
оказалось даже очень просто
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
Помог: 53 раз(а)
а причем тут уязвимость?
если если приспичет осуществить DOS атаку, то тут уж и без скрипта все можно устроить
DarkRevenger
Отправлено: 24 Июня, 2011 - 10:01:26
Новичок
Покинул форум
Сообщений всего: 40
Дата рег-ции: Май 2011
Помог: 0 раз(а)
Подскажите как построить ajax запрос чтобы при установке чекбокса срабатывала одно условие, а при снятии другое?
Установили чекбокс, в БД значение стало 1
Сняли чекбокс, в БД значение стало 0
Что-то я никак не соображу
Вот код AJAX
если же интересует ajax запрос на jquery то вам сюда, и сюда.
там все понятно и красиво расписано. а о костыле для IE уже было расписано выше у Viper, в первом коде. хотя насколько я понял при каждом выделении/снятии нужно отправлять не все чеки, а только обрабатываемый поэтому придется включить моцк и малеха переделать.
Viper
Отправлено: 27 Июня, 2011 - 13:09:23
Активный участник
Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007 Откуда: Симферополь
этот код (насколько я понял), каждому чекбоксу на странице на событие клик переводит чекбокс в тоже состояние в котором он нынче и находится [dot]is(), как то не логично!?
Viper
Отправлено: 27 Июня, 2011 - 22:17:19
Активный участник
Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007 Откуда: Симферополь
Помог: 98 раз(а)
DlTA пишет:
как то не логично
.is в данном случае возвращает true если чекбокс актвен. соответственно если какой-то отмечен, то с него будет снята отметка.
недостаточно?
или проблема в том что сначала происходит обработка события и только потом изменение статуса?!
Viper
Отправлено: 28 Июня, 2011 - 23:02:27
Активный участник
Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007 Откуда: Симферополь
Помог: 98 раз(а)
DlTA скажем так... обработать чекбоксы проще первой записью. приведенный вами пример лишь позваоляет выполнять дополнительные действия. но опять же мною были замечены грабли в IE8(шоп этому мелкософту пусто было...)
Покинул форум
Сообщений всего: 40
Дата рег-ции: Май 2011
Помог: 0 раз(а)
DlTA
Что-то я не совсем понял сути кода. У меня сделано так.
Есть страница Index.php куда выводится вся инфа. И есть страница ajax, которая при клике на какой-нибудь номер в Index генерит таблицу с данными об этом номере.
Index.php
if(empty($_SESSION['login'])){echo"<p class='block' style='color:red'>User does not exist! Perhaps it was deleted.<a href='index.php'>Home</a></p>";}//если такого не существует
echo"<h3>Personal user page: ".$_SESSION['lastname']." ".$_SESSION['firstname']."</h3>";
$query="SELECT distinct recipient FROM Calls WHERE phone_number=$phone_number AND Calls.date_of_call
BETWEEN DATE_SUB(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), INTERVAL DAY(CURDATE())-1 DAY)
AND DATE_SUB(CURDATE(), INTERVAL DAY(CURDATE()) DAY) and Calls.Cost>0 order by recipient";
Я пробовал использовать тот же код ajax который уже есть, просто переделать его под обработку чеков и сделать две функции, одна для обработки каждой строки отдельно, а вторая для обработки всего полученного массива.
т.е. создавал под них 4 разных запроса.
1.1. Обработка одной строки (снять чекбокс)
update Calls set personal=0 where id_call=call_id
1.2. Обработка одной сроки (установить чекбокс)
update Calls set personal=1 where id_call=call_id
2.1. Обработка массива звонков (установить чекбокс)
update Calls set personal=1 where recipient=recipient
2.2. Обработка массива звонков (снять чекбокс)
update Calls set personal=0 where recipient=recipient
Т.е. как-то так. Но сейчас мне почему-то кажется это полным бредом.
Viper
Отправлено: 29 Июня, 2011 - 08:50:36
Активный участник
Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007 Откуда: Симферополь
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.