|
|
|
|
|
для: virtus1k
(11.10.2008 в 16:06)
| | Если говорить серьезно, то я не вижу никаких проблем и в этом случае. Но коли вы не понимаете как сделать через id хранящиеся в значении, то я уже и не знаю как вам объяснить. Давайте с админ части. Вы можете получить весь список товаров категории, либо постранично (что никак не накладывает ограничений на групповое обновление). Вот в этом списке вы можете только знать, что какой-то товар имеет изображение или нет, но ни вкоем случае не можете в этом списке его изменить/удалить. Но в этом списке вы можете отметить товар как ТОР или дпугое, что собственно не важно. В этом же списке можно и другие подобные операции групповые производить, и делать это проще так, как я вам уже неоднократно говорил. А вот насчет изменений изборажений товаров, и прочих подробностей, так это нужно делать по переходу на другую страницу или в окне, и только для одного товара. То же самое, если вам нужен список товаров с изображениями или без них, то только для того, чтобы производить манипуляции с этими изображениями, а не заниматься ТОРами товаров. Другими словами, нужно разграничивать задачи на групповые и частные, тогда у вас и проблем не будет в админ части.
Что касается пользователя. Если вы ему выводите постранично, то вы строите навигатор страничный, в котором указываете смещение запроса, и знаете, что вывод товаров категории на страницу осуществляется по 10 товаров. Зная смещение (а это id записи в таблице), вы будете знать с какой записи начать сброс параметра, а добавив к смещению 10, узнаете по какую запись производить сброс.
Вы понимаете или нет, что невыбранный чекбокс не придет к вам на сервер? А это означает, что если пользователеь видит неотмеченный чекбокс и не выберет его, то он как был нулем так и останется им - что вас тут может беспокоить при сбросе значения? Вам важно знать только то, что отметил пользователь, а то что он разотметил, вам не придет, не будет такой id записи в массиве вовзвращаемом формой! Очистили значения перед обновлением - значит уже сбросили те чекбоксы, которые разотметил пользователь, останеться только установить в 1 те, что вы получили массивом от пользователя. Ну неужели не понятно?
Если вы плохо разбираетесь в многомерных массивах, то укажите в форме несколько имен чекбоксов (как массивы) для каждой групповой операции (ТОР и т.п.) с соответствующими id записей в атрибутах value. Обрабатывайте каждый массив в отдельности и делайте необходимые изменения в таблице. | |
|
|
|
|
|
|
|
для: sim5
(11.10.2008 в 15:59)
| | Нет. Не постранично. Товары выводятся фильтрами т.е. вывести товары категории X где есть фото или вывести товары категории Х где нет фото и т.д. | |
|
|
|
|
|
|
|
для: virtus1k
(11.10.2008 в 15:23)
| | Вопрос - вы выводите список товаров постранично? Если да, то как? | |
|
|
|
|
 93.3 Кб |
|
|
для: sim5
(11.10.2008 в 14:17)
| | Так. Сорри, запутал Вас совсем :)
Взгляните http://softtime.ru/forum/files/58761-20081010185759.gif ЭТО АДМИНКА - только админ может там что-то делать.
Значит задача.... дать админу право массово оперировать с товарами. Массовое удаление - я сделал, труда не соствавило. Теперь мне нужно сделать массовое скрытие/отобажение, вывод в TOP/ ввод в TOP ну и вывод и ввод NEW
Так вот. Как показано на скриншоте - пользователь отмечает нужные ему товары галками - кликает выполнить и они все становятся TOP.
ВТОРОЙ СКРИНШОТ (ВО ВЛОЖЕНИИ этого поста http://softtime.ru/forum/files/58761-20081011152318.jpg) показывает, что потом, пользователь захочет (через какое-то время) вывести с TOP нужные ему товары. Он должен снять галки там где он захочет - и значение в базе должно поменятся!
Поставить - поставил - снять не знаю как :)
Надеюсь все понятно пояснил! | |
|
|
|
|
|
|
|
для: virtus1k
(11.10.2008 в 14:05)
| | Первое. Я не верно вам сказал выше - с помошью min/max вы не узнаете, так как они могут быть не выбраны. Но если вы выводите постранично, то вы знаете смещение, так что трудностей быть не должно с определением записей для обнуления.
Второе. А не лучше ли отдавать пользователю товары как не выбранные? Это с чего вы решили, что я "на радостях" заберу у вас все предложенные 100? А если пользователь по ошибке нажмет SUBMIT так и не успев снять "галочки" с ненужного? Это вобще странный подход, равноценный тому, который мне когда-то заказчик навязывал - галочка "Подписаться на рассылку" должна быть по умолчанию отмечена. Как бы не так, почтовый ящик пользователя, это его собственность, а не собственность владельца сайта. Так и вам бы стоило исходить из того, что кошелек пользователя принадлежит ему, а не вам, и он вправе решать что выбрать, что нет, и по умолчанию "все товары выбраны", это с вашей стороны, ну если не "хамство", то просто не уважение к покупателю.
Третье. Если это не выбор товара пользователем для покупки, то что значит обнулить/выбрать? Вы администратор магазина, вы можете снять/добавить товар в категории, но делается это полем никак недоступным для пользователя.
Объясните сперва саму суть операций, для чего они служат? Видимо надо с этого начать . | |
|
|
|
|
|
|
|
для: virtus1k
(11.10.2008 в 14:05)
| | Если Вы изначально ставили галки на сотню товаров, а от пользователя получили только 94 галки, то вычтя из исходного множества(100) полученное(94), Вы и получите набор из тех шести галок, товары по которым нужно изменить. | |
|
|
|
|
|
|
|
для: sim5
(11.10.2008 в 13:19)
| | ну как зачем :)
смотрите. Я вывожу пользователю товары с нужной категории... У всех изначально стоят галки (checked) Пользователю нужно, что бы к примеру 6 из 100 снять галки - т.е. мне нужно сделать UPDATE у 6 товаров у которых сняты галки.
Обнулять все товары не хочется из этой категории - а потом ставить тем галки которые передаются...
Есть другой способ? | |
|
|
|
|
|
|
|
для: virtus1k
(11.10.2008 в 13:14)
| | Ну если вы передаете записи для изменения по 10 штук, и не случайным выбором, а сортированные, то есть начиная с 1 и по nn, то вы всегда будете знать id последней записи из этой десятки $max = max($_POST['name']) и первой $min = min($_POST['name']). Теперь вы можете обнулить поля для записей у которых id <= $max и id >= $min . Какие проблемы?
Зачем вам передавать значение 0 или 1 для этих полей? Вы, выдавая, список полей пользователю, получаете значение из базы - у полей, которые имеют 1, указывайте checked="checked", вот и получит пользователь "визуальную картину" состояния в базе этих полей. Ну а далее, как я вам рассказывал выше. Забудьте вы об этих 0 и 1 для value, пишите в них id полей записи в таблице. | |
|
|
|
|
|
|
|
для: sim5
(11.10.2008 в 12:52)
| | у всей таблицы не могу обнулить это поле, к сожалению т.к. в таблице может быть много записей - а на экран я выведу только 10 к примеру :) - вот разме, что обнулить эти 10, а потом писать в них :) НО это не дело - такой способ не подходит :(
я передаю на js значение невыбраных полей у меня получается id_0=1; id_1=1; id_2=0; id_3=1; id_5=0; только как мне теперь сопоставить и записать их в базу? | |
|
|
|
|
|
|
|
для: virtus1k
(11.10.2008 в 12:44)
| | Да, галочки не туда и обратно не идут, их браузер "рисует" :)
У вас есть таблица, в которой есть поле, например, `sel`, которое и может иметь значение 0 или 1. При получении выбранных чекбоксов, прежде чем обновить значения этих полученных id записей, обнулите (установите в 0) значения поля `sel` у всех записей. А затем UPDATE ... SET sel = 1, для полученных их формы id записей (выбранных чекбоксов).
Или вы о другом? | |
|
|
| |
|