x-mobi.ru

x-mobi.ru
Рейтинг
88
Регистрация
30.12.2007

burunduk, ну-у-у-у... тут JS... я не спорю, что можно))) обойти все чекбоксы, проверить на выделение, да добавить невидимые поля... впрочем, наверное так и сделаю, ибо проще)

p.s. но опять же, вдруг у юзера отключены ява-скрипты... хотя таких по сути мало

burunduk:
в чем?

Ну, перечитайте мой пост.

Просто мой php-класс может брать значения из одноуровневых массивов принятых из формы, с заранее не не известными ключами... но только одноуровневых, вот нужно сделать рекурсивную проверку любой вложенности. Данные то приходят в таком виде $_POST['name'][0], а имя поля то name[] - ключа нету, приходится в каждый запуск метода, выводящего такой элемент, делать инкремент счетчика, получая при этом номер ячейки. С многоуровневыми массивами нужно делать рекурсию...

Но это уже не проблема. А вот то, что чекбокс стандартно не отправляет пустые данные - это проблема)

bezludny:
Действительно, можно попробовать повесить обработчик на onsubmit формы, и в нем попробовать пошаманить перед отправкой...

А так не охото везде костыли подставлять...) Ладн, всем спасибо, парочка решений проблемы наметилась.

burunduk:
x-mobi.ru, получите JS значение всех существующих чекбоксов и их обрабатывайте
в чем проблема?

В неуниверсальности :) Такие решения тяжелые и требующие доработки любого интерфейса, когда как сделав 1 раз все правильно, можно использовать и более. Чем я и займусь.

ref:
x-mobi.ru, а зачем у всех чекбоксов value =1? Почему нельзя их сделать равным порядковому номеру бокса?

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

x-mobi.ru добавил 29.03.2009 в 18:03

bezludny:
Нерешаемых задач не бывает. Вам нужно просто вычислить более-менее постоянные данные, от которых можно отталкиваться для работы с геморными чекбоксами.

В данном случае нерешаема, более менее постоянных нет. В общем нужно объединить поля, которые должны быть в равном количестве, в 1 массив, поля - 1 уровень, данные полей - 2 уровень. Иначе чексбокс сведет сума.

p.s. убедился, что я и никто другой данную проблему не решит, тогда пойду менять...)

p.p.s. а, да, если использовать порядковые номера, можно было бы их обновлять у каждого поля при каждом удалении/обновлении полей, но это опять же JS и костыль.

bezludny:
А что если попробовать привязаться к тем элементам, которые всегда присутствуют? В вашем случае name1, name2, name3...

А вот их еще можно удалить кнопочкой "Удалить поле" :) Не прокатит вариант.

x-mobi.ru добавил 29.03.2009 в 17:54

LEOnidUKG:
Что за бред?
Ну в классе подкрутите, чтобы отправлялись 0 и всё.

PHP-класс, кстати. Он обрабатывает ПРИШЕДШИЕ данные, а не отправляет их.

В общем не решаема задача в данной постановке :D

LEOnidUKG:
Что за бред?
Ну в классе подкрутите, чтобы отправлялись 0 и всё.

С удовольствием послушаю как :)

Конечно... можно было все поля (name, name1, name2...) объединить в fields[name], fields[name1], fields[name2]... и проблема бы отпала сама собой, т.е.:

foreach(fields as k => v) { 

if(isset(v[name]))... // вот тут как раз данные, идущие с чекбокса
v[name1]...
}

Но тут уже идут ограничения класса для работы с формами, придется совершенствовать.

x-mobi.ru добавил 29.03.2009 в 17:48

modobaks:
Создай тогда заранее массив, наполни его нулями, а потом уже сливай воедино с массив переданный через post

Кстати идея, не подумал (но тут тоже непонятно сколько нужно наполнить, число полей заранее не известно)... не люблю просто я костылями пользоваться, а приходится. Да можно изменить на самом деле, просто уже другие места править нужно.

Тем не менее непонятно почему чекбокс не отправляет пустых данных, что было бы логичнее.

UPD:

>> Создай тогда заранее массив, наполни его нулями, а потом уже сливай воедино с массив переданный через post

не, не получится... нумерация все равно не известна. Сливать нельзя

MOP1, перечитайте пост.

modobaks, спасибо, конечно, но вы тоже перечитайте пост :)

Входные данные менять нельзя еще вот почему. В разрабатываемом интерфейсе есть возможность ДОБАВЛЯТЬ дополнительные поля, т.е. из такого

<form action = "" method = "post">

<input type="checkbox" name="name[0]" value="1" />
<input type="checkbox" name="name[1]" value="1" checked />
<input type="checkbox" name="name[2]" value="1" />
<input type="submit">
</form>

Можно получить такое

<form action = "" method = "post">

<input type="checkbox" name="name[0]" value="1" />
<input type="checkbox" name="name[]" value="1" />
<input type="checkbox" name="name[1]" value="1" checked />
<input type="checkbox" name="name[2]" value="1" />
<input type="submit">
</form>

Сами догадаетесь, что получится? :)

andreylabs:
Строительный сайт, 2 года занимавший первые места в 10-ке, в этот АПдейт ПОЛНОСТЬЮ вылетел из выдачи!!! 🙅

Вот так Апдейтик...
Хорошо я не один такой, что делать то?

А Садовский говорит еще, что они научились... что делать? А ничего, у меня таже проблема, отписываются шаблонами, потом говорят с сайтом все ОК, скоро вернется и... и все, тишина. На диалог идти никто не хочет

Всего: 417