LINUX.ORG.RU

Группировка параметров в теге form

 , ,


0

1

Вот пример кода:

-----------------------------------------------------

<form action=«option1.html»>

<select name=«f»>

<option value=«»>any</option>

<option value=«s1»>вася</option>

<option value=«s2»>петя</option>

<option value=«s3»>коля</option>

</select> <select name=«f»>

<option value=«»>any</option>

<option value=«o1»>Чебурашка</option>

<option value=«o2»>Крокодил Гена</option>

<option value=«o3»>Шапокляк</option>

</select> <select name=«k»>

<option value=«»>any</option>

<option value=«z1»>100</option>

<option value=«z2»>200</option>

</select> <input type=«submit» value=«Отправить»>

</form>

-----------------------------------------------------

Сейчас на выходе: option1.html?f=s2&f=o2&k=z2

А результат должен быть таким: option1.html?f=s2,o2&k=z2

-----------------------------------------------------

Как сделать так чтобы на выходе было в место двух значений “f= f=” одно “f=” и параметры перечислялись через запятую, т.е. если у кого одинаковые значения “name” они группируются и перечисляются через запятую, если начения разные (у нас это «k») то перечислим их отдельно.

Что нужно поправить в скрипте, чтобы на выходе получить нужный результат?

сделай подскрипт

anonymous
()

очень просто

оставить 1 select с именем f и совмещёнными значениями

visual ★★★
()

это в примере 3 select с именем f а в реальности их 60 с именем f, и еще по 10 шт. с другими именами, объединить без вариантов.

а как сделать подскрипт? куда копать в какую сторону, вы покажите направление я уже потом сама.

AnastasiaM
() автор топика

Без js этого не сделать. Да и что за странная прихоть?

metrokto ★★
()

Лучше используй массивы.

А на серверной стороне сделаешь, что-нибудь вроде implode.

VirRaa ★★★
()
Последнее исправление: VirRaa (всего исправлений: 1)

код оформи в [ code ] [ / code ]

а для достижения нужного результата без js не обойтись.

funeralismatic ★★★
()

А результат должен быть таким: option1.html?f=s2,o2&k=z2

кому и зачем _должен_? Hint: начните с этого вопроса.

emulek
()
Ответ на: комментарий от emulek

+2 этому господину.

поведение с дублированием таковое, потому что «by design».

?f=1&f=2

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

пожалейте того, кому придется в это еще и вникать. но если все-таки очень надо - то смотрите мой пост выше.

noomorph
()

На серверной стороне это преобразование делается мгновенно. Зачем делать его на клиенте?

Miguel ★★★★★
()

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

Пользователю noomorph отдельное спасибо за код, сейчас буду тестировать.

AnastasiaM
() автор топика
Ответ на: комментарий от AnastasiaM

Рад что все получилось. :)

Если проект долгий, то лучше внять комментаторам и получить доступ и до(пере)писать серверный код.

Если дело разовое, то лишь пожелаю удачи в войне с костылями и скорейшего ее окончания.

noomorph
()
Ответ на: комментарий от AnastasiaM

После того как пользователь выбрал данные они отсылаются на удаленный сервер который понимает ТОЛЬКО так

так пишут серверный код ТОЛЬКО му*аки.

и на стандарты на стороне удаленного сервера похоже забили.

там не на стандарты ЗАБИЛИ. Ты лучше в наркоконтроль обратись...

emulek
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.